2012-05-22 29 views
2

我想在MATLAB中使用水平文本對齊'右'來顯示msgbox。
問題是當我改變文本對齊時,消息文本出現在框中。Matlab中的RTL msgbox

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

有誰知道向用戶顯示Matlab的從右向左的消息嗎?

+0

您是否嘗試將字體更改爲希伯來語? –

+0

@Andrey--哪種字體可以改變哪種字體? –

+0

希伯來語字體'th'的字體,如David –

回答

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)]);