Caja de mensajes RTL en Matlab

Estoy tratando de presentar un msgbox en MATLAB que usa la alineación de texto horizontal 'derecha'.
El problema es que cuando estoy cambiando la alineación del texto, el texto del mensaje aparece fuera de la caja.

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

¿Alguien sabe presentar al usuario un mensaje de derecha a izquierda de Matlab?

preguntado el 22 de mayo de 12 a las 10:05

¿Intentaste cambiar la fuente a hebreo? -

@Andrey: ¿qué fuente cambiar y de qué manera? -

la fuente de th al hebreo uno, como David -

@Andrey: sí, lo he intentado. set(th, 'FontName', 'David') simplemente cambie la fuente sin cambiar la alineación. -

1 Respuestas

La cadena de mensaje en el cuadro de mensaje en realidad se crea usando el text función, es decir, se posiciona por dos coordenadas (despreciando la coordenada z). Para colocarlo con la alineación correcta, deberá obtener el position del cuadro de mensaje y utilice su width argumento para definir la posición x del texto del mensaje:

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

Dado que esto coloca su texto exactamente en el borde derecho del cuadro, deberá ajustar el texto ligeramente hacia la izquierda:

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

contestado el 22 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.