我正在使用uicontrol创建GUI元素。以下是我的代码
uicontrol('Style','pushbutton', 'String','Load data','Parent',hTabs(1),'Position',[250 825 80 20], 'Callback',@ButtonCallback);这里的问题是,当我使用Units normalized选项时,GUI元素从屏幕上消失。我想使用normalized,这样GUI就可以在不同的屏幕分辨率下进行自我调整。这方面的任何想法对我都很有帮助。
发布于 2012-07-17 22:37:01
使用Normalized单位时,需要定义介于0和1之间的位置,其中0是包含对象的底部/左手边,1是包含对象的总高度/宽度。
您当前正在使用超出此范围的数字来定义职位。你可以做两件事。
normalized (如下所示)uicontrol,但您必须计算适当的位置矢量下面是关于如何做到这两点的示例
一个简单的解决方案是创建uicontrol,然后在单独的调用中将单位设置为标准化
u = uicontrol(...) %don't specify the units
set(u,'Units', 'Normalized'); % this solves your problem如果您想以归一化单位获取位置向量
normPos = get(u, 'Position') % get the position in normal space然后使用这些数字创建具有标准化单位的uicontrol:
u = uicontrol(...,'Units','Normalized', 'Position', normPos); 发布于 2012-07-17 22:36:48
使用'units','normalized'选项时,必须更改位置向量。地物参考系的坐标介于0和1之间。
例如。
uicontrol('Style','pushbutton',...
'String','Load data',...
'Parent',hTabs(1),...
'units','normalized',...
'Position',[0 0 0.1 0.1],...
'Callback',@ButtonCallback); 在父面板的左下角为您提供高度和宽度的10%的按钮。
https://stackoverflow.com/questions/11524384
复制相似问题