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