1

我的问题是我想要一个框来对图表进行更多更大的评论。如何创建此框,使其始终位于图表外部的右下侧,并且会根据内部文本的数量自动调整其大小?另外,如果我有更长的文本,我需要将它分成更多的行,而不仅仅是一条非常长的行。

我这样使用它,但是我对正在发生的事情的控制很差,这只是在某个地方创建了一定的大小,文本被剪切了..请帮助:)

x = rand(110)*100;
y = x;
plot(x,y)
MyBox = uicontrol('style','text')
set(MyBox,'String','optional longer information to be put into diagram')
set(MyBox,'Position',[10,0,40,10])
4

1 回答 1

0

恐怕你不能自动做到这一点 - 文本框不使用回调。从文档中:

用户不能以交互方式更改静态文本。静态文本控件在单击时不会激活回调例程。

你可以做的是调用 textwrap 函数,它会自动包装你传递给它的文本并返回新的文本框位置:

MyBox = uicontrol('style','text');
% set initial position - first three values are kept constant after wrap, the hight can be changed
set(MyBox,'Position',[10,10,30,10])

% adjust the height of your Text box and wrap the text
[outstring,newpos] = textwrap(MyBox,{'optional longer information to be put into diagram'});
% set new position and text
set(MyBox,'Position',newpos, 'String', outstring)

每当您更改文本框中的字符串时,您都必须自己调用 textwrap 和 set(...) 。

于 2012-09-26T06:59:44.420 回答