我正在尝试计算GUI中uicontrol所需的实际大小,以便GUI可以适当地调整大小。我的问题是uicontrol的Extent属性只是文本区域,我找不到确定周围控件大小的方法(例如弹出窗口中的向下箭头或编辑控件的边距)。有没有办法获得控件上装饰的大小?
我在MATLAB Answers上看到了这个相关的问题,它看起来也没有解决方案。
编辑:
例如,我想计算这个弹出窗口应该有多大,以避免切断内容:
uicontrol('style', 'popup', 'string', {'a long string'})
Extent只是告诉我"一个长字符串"有多大,我仍然不知道弹出窗口有多大。我想要一种方法来确定用户显示器上需要多少额外的空间(而不需要假设他们使用的操作系统或字体大小)。
您可以使用get(hObject,'extent')来了解uicontrol中包含的字符串占用的空间。您可以看到这是否大于uicontrol的位置。
uicontrol位置属性为控件提供边界矩形的高度和宽度。这一直对我有效。是否存在此属性无法提供足够信息的控件?
如果您正在构建的GUI可以完全由Java组件组装,那么您可以使用MATLAB的Java集成来使用Java Swing组件(全部来自M代码)创建和驱动窗口。这完全避开了这个问题,因为Java布局管理器可以正确地进行UI布局。