我正在使用 uicontrol 创建 GUI 元素。以下是我的代码
uicontrol('Style','pushbutton', 'String','Load data','Parent',hTabs(1),'Position',[250 825 80 20], 'Callback',@ButtonCallback);
这里的问题是当我使用单位标准化选项时,GUI 元素正在从屏幕上消失。我想使用规范化,以便 GUI 在不同的屏幕分辨率下自行调整。对此的任何想法都会对我很有帮助。
我正在使用 uicontrol 创建 GUI 元素。以下是我的代码
uicontrol('Style','pushbutton', 'String','Load data','Parent',hTabs(1),'Position',[250 825 80 20], 'Callback',@ButtonCallback);
这里的问题是当我使用单位标准化选项时,GUI 元素正在从屏幕上消失。我想使用规范化,以便 GUI 在不同的屏幕分辨率下自行调整。对此的任何想法都会对我很有帮助。
当您使用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);
使用该 '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% 的高度和宽度的按钮。