1

私の問題は、グラフにさらに大きなコメントを追加するためのボックスが必要なことです。このボックスを作成して、グラフの外側の右下に常に表示され、内側のテキストの量に合わせてサイズが自動的に調整されるようにするにはどうすればよいですか?また、テキストが長くなる場合は、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 に答える