2

我正在尝试在 MATLAB 中显示一个使用水平文本对齐“正确”的 msgbox。
问题是当我更改文本对齐方式时,消息文本出现在框外。

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

有谁知道从 Matlab 向用户展示从右到左的消息?

4

1 回答 1

1

消息框中的消息字符串实际上是使用text 函数创建的,即通​​过两个坐标定位(忽略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 回答