【发布时间】:2018-07-12 11:18:47
【问题描述】:
在我与 Octave 一起使用的 Matlab 脚本中,我的图中有一个 uicontrol 元素,即 Style Slider,它本质上是一个常规滚动条滑块。
controls.slider.audio_1 = uicontrol( 'Style', 'Slider', ...
'Position', [ 100 150 10 300 ], ...
'Max', 100, 'Min', 1, ...
'SliderStep', [ 0.01 0.01 ], ...
'Units', 'normalized', ...
'Value', 1 )
滑块的方向由其几何形状决定:宽 10 像素,高 300 像素,使其成为垂直滑块。我还没有找到强制定向的方法。
但是我的问题的重点来了:当我这样定义滑块时,最小值(由Min 定义)位于顶部!滑块的最小位置位于顶部,然后用户必须将其拉下以增加值。我想切换它,使最小值位于底部,并且滑块在向上拖动时会增加其值。
我该怎么做?
【问题讨论】:
-
不直观,我同意。但这有关系吗?值只是位置。您可以随意翻译。
value = 100-position. -
@CrisLuengo 这个问题也是兼容性问题之一:我注意到它似乎取决于滑块开始的 Matlab 和/或 Octave 版本,或者它的方向,有办法强制方向等会使它更便携。
-
我明白你的意思。我从来没有注意到 MATLAB 中的滑块是倒置的(我从 5.3 开始就一直在使用它)。这可能是特定版本的 Octave 中的错误吗?
-
@CrisLuengo 我什至不确定这是一个错误:它可能只是 Matlab / Octave 在后台使用的图形包的标准。 IE。在某些 GUI 包中,滑块从顶部开始。
-
当然,它可能是 Octave 中的 GUI 包。但我会认为这样的不一致是一个错误。如果我要为 Octave 制作一个不同 UI 工具包的界面,我会努力保持 UI 控件行为的一致性。自从我使用 MATLAB 以来,它已经有 3 种不同的 UI 实现,它们一直非常擅长保持一致性,如果你在那里看到这个反向滚动条,我会感到惊讶。
标签: matlab user-interface slider octave uicontrol