Matlab中的RTL msgbox

时间:2012-05-22 09:14:56

标签: matlab right-to-left

我正在尝试在MATLAB中使用水平文本对齐“右”来呈现msgbox。
问题是当我更改文本对齐时,消息文本显示为开箱即用。

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

有没有人知道向用户提供来自Matlab的从右到左的消息?

1 个答案:

答案 0 :(得分: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)]);