我正在尝试在 MATLAB 中显示一个使用水平文本对齐“正确”的 msgbox。
问题是当我更改文本对齐方式时,消息文本出现在框外。
h = msgbox('Sample Text');
th = findall(0, 'Tag','MessageBox' );
set(th, 'HorizontalAlignment', 'right');
有谁知道从 Matlab 向用户展示从右到左的消息?
我正在尝试在 MATLAB 中显示一个使用水平文本对齐“正确”的 msgbox。
问题是当我更改文本对齐方式时,消息文本出现在框外。
h = msgbox('Sample Text');
th = findall(0, 'Tag','MessageBox' );
set(th, 'HorizontalAlignment', 'right');
有谁知道从 Matlab 向用户展示从右到左的消息?
消息框中的消息字符串实际上是使用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)]);