计算MATLAB uicontrol所需的实际大小

时间:2011-06-23 17:04:02

标签: user-interface matlab

我正在尝试计算GUI中uicontrols所需的实际大小,以便GUI可以适当地调整自身大小。我的问题是uicontrol的Extent属性只是文本区域,我找不到确定周围控件大小的方法(例如弹出窗口中的向下箭头或编辑控件的边距)。有没有办法在控件上获得装饰的大小?

我在MATLAB Answers上看到this related question,看起来它也没有解决方案。

编辑:

例如,我想计算这个弹出窗口应该有多大以避免切断内容:

uicontrol('style', 'popup', 'string', {'a long string'})

Extent只告诉我“长串”有多大,而且我仍然不知道弹出窗口有多大。我想要一种方法来确定用户显示器上需要多少额外空间(不假设他们使用哪种操作系统或字体大小)。

3 个答案:

答案 0 :(得分:1)

您可以使用get(hObject,'extent')来查找uicontrol中包含的字符串占用的空间。您可以看到它是否大于uicontrol的位置。

答案 1 :(得分:0)

uicontrol Position属性为您提供控件的边界矩形的高度和宽度。这一直对我有用。是否存在此属性未提供足够信息的控件?

答案 2 :(得分:0)

如果您正在构建的GUI可以仅使用Java组件进行组装,则可以使用MATLAB的Java集成来使用Java Swing组件(全部来自M代码)创建和驱动窗口。这完全避免了这个问题,因为Java布局管理器可以正确地进行UI布局。