我正在尝试使用http://www.mathworks.com/matlabcentral/fileexchange/11546处的uitabpanel()
构建包含多个标签的GUI。我想根据当前打开的选项卡调整GUI的大小; uitabpanel.SelectedItem
可以使用此功能。
基本上我想构建一个回调来监视uitabpanel.SelectedItem
- 当这个变量发生变化时,GUI窗口应该适当调整大小。一般来说,我正在寻找一种监视变量的方法,并在变量值改变时执行回调。
这可能吗?我该怎么做呢?
谢谢!
答案 0 :(得分:4)
我现在面前没有MATLAB,但是如果它是作为属性实现的 - 而且我可以通过快速查看代码来判断它是 - 你可以使用{ {3}}函数并为其提供回调函数。
addlistener(hTab,'SelectedItem','PostSet',@(s,e)disp('SelectedItem changed'))
答案 1 :(得分:3)
我不熟悉文件交换中的uitab。但是,如果它是基于内置uitab构建的,则应该有selectionChangeCallback
或selectionChangeFcn
属性(取决于您的Matlab版本)。为此回调属性指定一个函数,您可以在选择更改时执行函数。
如果这是不可能的,监视变量的唯一其他方法(如果你不能以某种方式使用对象和设置方法)是使用TIMER OBJECT定期轮询变量的值。
编辑由于FEX uitab基于uipanel
,因此您正在寻找的回调很可能是ButtonDownFcn。在更改之前,请确保uitab功能未使用它,否则,您将需要编辑该功能。