MATLAB社区

MATLAB,社区和更多

将选项卡放入GUI中

我们的一位勇敢的读者Ahmet最近给我发了一封电子邮件,请求我支持GUIDE中的标签面板。金宝app在经历了“为什么有人想要使用标签?”我开始思考这个问题。我的第一反应是使用Java解决方案,在图形窗口中填充Java JTabbedPane,但我很快就放弃了这个想法,因为它对matlab不友好,而且充满了未记录的钩子。

然后我考虑用一排按钮来模拟标签,控制重叠面板的可见性。最后,我突然想到,可能有人已经想到了,并把它放在了文件交换.事实上,上周的文件交换本周精选包括一个示例GUI (GUI_35.m),演示如何做到这一点:

马特Fig的样品GUI #35 -标签

您要切换的窗格的两个重要属性是位置可见.Matt Fig的gui非常好,但是需要单独设置所有组件的可见性。如果我们把每个“选项卡窗格”的所有控件和轴放在uipanel,然后我们可以通过控制面板的显示/隐藏全部可见财产。下面是一个切换按钮回调的快速示例,它显示了它的面板(tab_panel1),并隐藏另一个(tab_panel2).togglebutton_tab2会有一个并行的回调函数:

%——在togglebutton_tab1的按钮按下执行。函数togglebutton_tab1_Callback (hObject eventdata处理)% togglebutton_tab1的hObject句柄(参见GCBO)% eventdata保留-将在MATLAB的未来版本中定义%使用句柄和用户数据处理结构(参见GUIDATA)集(handles.tab_panel1,“可见”“关闭”);集(handles.tab_panel2,“可见”“上”);

这是基本思想。我们希望将来在GUID金宝appE中支持更自然的选项卡面板机制,但现在您必须自己构建它,或者使用其中一个文件交换提交。

我想回到我最初对用户请求标签的惊讶。标签页有几个缺点。首先,您必须对各个面板控件进行逻辑分组,使每个组都有意义,使所有选项卡作为一个集合都有意义。有时会有一个很自然的群体,这很好;然而,我见过很多gui都带有“杂项”或“其他”选项卡,或者面板上有三个相关项和一个不相关项。如果你采用这种方法,请确保你的用户能够理解每个面板上的内容以及原因。第二个问题是缺乏可发现性。因为您选择了对用户隐藏GUI的很大一部分,所以有可能他不会看到或愿意单击选项卡来发现其余的功能。

考虑到这些问题,什么时候是使用选项卡面板的合适时间?这个讨论设计接口(作者使用通用术语“卡栈”)显示的好时机是当(1)有太多的控制适合在屏幕上(2)没有刚性结构(如在属性检查器),和(3)用户不需要在同一时间使用他们所有人(例如你应该使用次要情节,而不是一个axes-per-tab ?)。

请告诉我们您是否在MATLAB gui中创建了选项卡窗格,以及它们是否有效。

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。