gpt4 book ai didi

matlab - 对齐文本和编辑 uicontrols

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:56 26 4
gpt4 key购买 nike

我正在创建 GUI,我希望在那里有输入和结果。

我有 text 字段作为标签,editpopup 用于输入。当我有

uicontrol('style','text','string','foo','units','centimeters','position',[1 1 1 0.5]);
uicontrol('style','edit','string','foo','units','centimeters','position',[2 1 1 0.5]);

我发现 foo 字符串稍微错位,text 字段的基线略高于 edit/pop< 的基线 字段。

如何对齐这些字段?

最佳答案

不幸的是,这需要访问底层 Java。方法类似于Amro's approach here对于 pushbutton 并利用外部 findjobj功能:

h.t = uicontrol('style','text','string','foo','units','centimeters','position',[1 1 1 0.5]);
h.e = uicontrol('style','edit','string','foo','units','centimeters','position',[2 1 1 0.5]);
jh = findjobj(h.t);
jh.setVerticalAlignment(javax.swing.JLabel.CENTER)

不幸的是,这仍然相差一两个像素:

yay

我想说的是根据需要逐个像素地碰撞文本框:

oldunits = get(h.t, 'Units');
set(h.t, 'Units', 'Pixels');
pos = get(h.t, 'Position');

pos(2) = pos(2) + 1;

set(h.t, 'Position', pos)
set(h.t, 'Units', oldunits)

这给了我们:

yay2


编辑:修改编辑框的BackgroundColor属性没有效果(虽然将其设置为none使其成为黑框...),并且该框将保持默认颜色。根据 MathWorks,这是一个 design decision :

This is a expected behavior in the way that MATLAB displays the BackgroundColor for editable text objects.

这也很可能通过利用底层 Java 进行更新,但我不熟悉。

关于matlab - 对齐文本和编辑 uicontrols,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35876651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com