用户界面-计算MATLAB uicontrol所需的实际大小



我正在尝试计算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布局。

最新更新