首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab UIControl单元

Matlab UIControl单元
EN

Stack Overflow用户
提问于 2012-07-17 22:14:06
回答 2查看 1.7K关注 0票数 3

我正在使用uicontrol创建GUI元素。以下是我的代码

代码语言:javascript
复制
uicontrol('Style','pushbutton', 'String','Load data','Parent',hTabs(1),'Position',[250 825 80 20], 'Callback',@ButtonCallback);

这里的问题是,当我使用Units normalized选项时,GUI元素从屏幕上消失。我想使用normalized,这样GUI就可以在不同的屏幕分辨率下进行自我调整。这方面的任何想法对我都很有帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-17 22:37:01

使用Normalized单位时,需要定义介于0和1之间的位置,其中0是包含对象的底部/左手边,1是包含对象的总高度/宽度。

您当前正在使用超出此范围的数字来定义职位。你可以做两件事。

  • 在单独的函数调用中将单位切换为normalized (如下所示)
  • 使用归一化单位创建uicontrol,但您必须计算适当的位置矢量

下面是关于如何做到这两点的示例

一个简单的解决方案是创建uicontrol,然后在单独的调用中将单位设置为标准化

代码语言:javascript
复制
u = uicontrol(...) %don't specify the units
set(u,'Units', 'Normalized'); % this solves your problem

如果您想以归一化单位获取位置向量

代码语言:javascript
复制
normPos = get(u, 'Position') % get the position in normal space

然后使用这些数字创建具有标准化单位的uicontrol

代码语言:javascript
复制
u = uicontrol(...,'Units','Normalized', 'Position', normPos); 
票数 2
EN

Stack Overflow用户

发布于 2012-07-17 22:36:48

使用'units','normalized'选项时,必须更改位置向量。地物参考系的坐标介于0和1之间。

例如。

代码语言:javascript
复制
uicontrol('Style','pushbutton',...
          'String','Load data',...
          'Parent',hTabs(1),...
          'units','normalized',...
          'Position',[0 0 0.1 0.1],...
          'Callback',@ButtonCallback); 

在父面板的左下角为您提供高度和宽度的10%的按钮。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11524384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档