1

有没有办法在不改变 x 和 y 位置的情况下改变整个图形上文本字段的高度?

要改变我们必须使用位置,这需要改变坐标。我只想改变高度,而不改变 x 和 y。

4

4 回答 4

2

只需存储当前的 x 和 y,然后在您的set调用中使用它们,如下所示:

old_pos = get(text_field_handle,'Position');
set(text_field_handle,'Position',[old_pos(1:2),new_width,new_height]);
于 2013-10-29T10:53:04.940 回答
1

好吧,你可以改变FontSize属性,这不会改变坐标,但会增加宽度和高度。有关更多详细信息,请参阅文档中的文本属性

于 2013-10-29T10:50:05.143 回答
1

我假设您正在使用uicontrol('style','text').

从您拥有的uicontrol 属性中:

位置

position rectangle

*Size and location of uicontrol*. The rectangle defined by this property 
specifies the size and location of the control within the parent figure 
window, uipanel, or uibuttongroup. Specify Position as:

[left bottom width height]

where left and bottom define the distance from the lower-left corner of the 
container to the lower-left corner of the rectangle. width and height are the 
dimensions of the uicontrol rectangle.

然后,您可以更改widthheight保留原始的leftand bottom

于 2013-10-29T10:51:03.627 回答
1

可以设置对象的Margin属性text来增加对象的高度而不改变字体大小,但这会影响文本对象的高度和宽度。我不确定使高度小于 Matlab 认为的文本高度意味着什么,所以我假设您有兴趣增加大小。

如果您愿意使用 LaTeX 解释器,增加文本对象的高度相对容易。你只需要添加一个你想要的任何高度的“空”框:

text(0.5, 0.25, 'Hello World\parbox{\textwidth}{\vspace{1in}}', 'Interpreter', 'LaTeX', 'BackgroundColor',[1, 0, 0]);

这不会将高度恰好增加 1 英寸,而是更像是 1 英寸减去基线跳跃。确定显示单位的实际高度增加会增加更多问题。您也许可以使用 unicode 字符更改高度,从而跳过 LaTeX 解释器,但我不知道如何。

于 2013-10-29T13:14:10.180 回答