Octave 中的 uicontrol 滑块:最小值在顶部,最大值在底部
uicontrol Slider in Octave: minimum is at top, maximum at bottom
在我与 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
定义)在顶部!滑块在顶部的最小位置工作,然后用户必须将其向下拉以增加值。我想切换它,使最小值位于底部,向上拖动时滑块会增加其值。
我该怎么做?
UTSL!在 libgui/graphics/SliderControl.cc#l65 你会发现
bool vertical_slider = ( bb(2) < bb(3) );
slider->setOrientation (vertical_slider ? Qt::Vertical : Qt::Horizontal);
if (vertical_slider)
slider->setInvertedAppearance (true); // Matlab compatibility
这正是您要找的。然后启动 hg blame
以查看是谁在何时添加了该行并查看提交消息:
$ hg log -r 23412
changeset: 23412:7b95435e96a4
user: Rik <rik@octave.org>
date: Tue Apr 18 16:35:38 2017 -0700
summary: Reverse orientation of vertical uicontrol "sliders" for Matlab compatibility (bug #50818).
啊哈!因此,为了在 2017 年开发树(也称为默认)上的兼容性,这已更改。因此 4.2.x 版本还没有看到这一点,但下一个 4.4 版本将有更改。
但是您还没有提到您使用的 GNU Octave 版本。
在我与 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
定义)在顶部!滑块在顶部的最小位置工作,然后用户必须将其向下拉以增加值。我想切换它,使最小值位于底部,向上拖动时滑块会增加其值。
我该怎么做?
UTSL!在 libgui/graphics/SliderControl.cc#l65 你会发现
bool vertical_slider = ( bb(2) < bb(3) );
slider->setOrientation (vertical_slider ? Qt::Vertical : Qt::Horizontal);
if (vertical_slider)
slider->setInvertedAppearance (true); // Matlab compatibility
这正是您要找的。然后启动 hg blame
以查看是谁在何时添加了该行并查看提交消息:
$ hg log -r 23412
changeset: 23412:7b95435e96a4
user: Rik <rik@octave.org>
date: Tue Apr 18 16:35:38 2017 -0700
summary: Reverse orientation of vertical uicontrol "sliders" for Matlab compatibility (bug #50818).
啊哈!因此,为了在 2017 年开发树(也称为默认)上的兼容性,这已更改。因此 4.2.x 版本还没有看到这一点,但下一个 4.4 版本将有更改。
但是您还没有提到您使用的 GNU Octave 版本。