2

水平方向のテキスト配置「右」を使用する MATLAB で msgbox を表示しようとしています。
問題は、テキストの配置を変更しているときに、メッセージ テキストがそのまま表示されることです。

h = msgbox('Sample Text');
th = findall(0, 'Tag','MessageBox' );
set(th, 'HorizontalAlignment', 'right');

Matlabから右から左へのメッセージをユーザーに提示することを知っている人はいますか?

4

1 に答える 1

1

メッセージ ボックス内のメッセージ文字列は、実際にはtext 関数を使用して作成されます。つまり、2 つの座標によって配置されます (z 座標は無視します)。右揃えで配置するにpositionは、メッセージ ボックスの を取得し、そのwidth引数を使用してメッセージ テキストの x 位置を定義する必要があります。

h = msgbox('Sample Text');
th = findall(0, 'Tag','MessageBox' );

boxPosition = get(h,'position');
textPosition = get(th, 'position'); 

set(th, 'position', [boxPosition(3) textPosition(2) textPosition(3)]);

set(th, 'HorizontalAlignment', 'right');

これにより、テキストがボックスの右端に正確に配置されるため、テキストを少し左に調整する必要があります。

set(th, 'position', [boxPosition(3).*0.95 textPosition(2) textPosition(3)]);
于 2012-05-22T10:09:39.340 に答える