范围滑块或滚动条在应用程序设计器?

92次浏览(最近30天)
直到"class=
直到 2019年10月7日
编辑: Marek Svoboda2021年4月9日
我正在绘制随时间变化的数据,并包括一个缩放功能。
是否有任何方法显示当前查看的数据相对于滑块上的完整数据?
例如:如果我的完整数据是从0到100,并且我放大显示从10:90的数据,它应该是这样的:
slider2.png"></div>
                  <div class= 当放大显示数据从40到60时,它应该是这样的:
slider.png"></div>
                  <div class= 我找到的一个变通方法是记录在这里的范围滑块: http://undocumentedmatlab.com/blog/sliders-in-matlab-gui
但是由于我试图将我的GUI迁移到App-Designer,从我的理解来看,页面上描述的方式是行不通的
先谢谢你
2的评论
直到"class=
直到 2019年10月9日
非常感谢,最后我决定不使用App Designer,只使用java组件

登录评论。

答案(1)

Marek Svoboda"class=
Marek Svoboda 2020年2月10日
编辑:Marek Svoboda 2020年2月10日
对于任何想要创造功能的人来说 量程/双/双旋钮滑块 程序设计师 :实验后的 滑块范围 不会工作,因为他们使用 Java ,这是 不支持万博1manbetx 由应用程序设计师。我玩了很久,最终想出了一个创造性的解决方案,如下所示:
本质上,它是a 行ROI 在…之上 1 d轴 .要实现它,首先,在你的应用程序GUI中包含一个“面板”。我的面板大小是40x280像素。
然后在全球范围内 属性 方法 ,您需要分别启动以下项目:
属性(Access = private)
斧头;轴的%
l;直线的百分比
结束
方法(Access = private)
对滑块的移动做出响应的功能
函数源lMoving (~)
总是保持这个位置四舍五入到小数点后1位
source.Position(1, - 1) =圆(source.Position (1, 1), 1);
source.Position(2, 1) =圆(source.Position (2, 1), 1);
%添加滑块移动触发的其他动作
结束
在startupFcn中,包括以下内容:
%创建1D轴
app.ax =轴(...
app.Panel,“颜色”“没有”“YColor”“没有”“XLim”[0, 1.5],“YTick”[],...
“XTick”0:0.5:1.5,“TickDir”“两个”“TickLength”[0.03, 0.035],“XMinorTick”...
“上”“单位”“像素”“位置”, (30264 0)...
);
%禁用交互性和工具栏可见性
disableDefaultInteractivity (app.ax);
app.ax.Toolbar.Visible =“关闭”
%添加“ROI”一行
app.l = images.roi.Line (app.ax,“位置”, 0.9, 0; 1.1, 0);
%添加一个监听器,当用户使用该监听器时,将触发一个名为“lMoving”的回调函数
%移动整个ROI端点或直线ROI
addlistener (app.l,“MovingROI”@(变长度输入宗量)lMoving(应用,app.l));
注意这个范围滑块 将不会显示在GUI中,直到你实际运行应用程序 因为它只是startupFcn的一部分。
在我的实现中,我让滑块连接到两个 数字编辑字段 相互对彼此的变化做出反应:
希望对你有帮助!
7评论
Marek Svoboda"class=
Marek Svoboda 2021年4月9日
@Jessica Angulo卡博尔 这可能是可能的——我手边没有确切的代码,但肯定有方法来分配键盘输入,也许鼠标滚轮也可以。更多关于 KeyPressFcn 在这里:
请注意,我记得当我查看键盘输入时,应用程序需要处于激活状态(即已经选中/点击),以便任何键盘输入工作:
这个回调函数在用户按下一个键时执行 而UI图形或子组件有焦点。
此外,为了使这个回调工作,您可能需要弄清楚具体的 的名字 你最终想要成为触发器的键盘/鼠标按钮。为此,作为测试,我建议设置这个回调函数,当您按下各种键盘键时,将键名简单地打印到文本字段中。(希望这有意义!:))

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!