Caja de mensajes RTL en Matlab
Frecuentes
Visto 1,857 equipos
2
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?
1 Respuestas
1
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 matlab right-to-left or haz tu propia pregunta.
¿Intentaste cambiar la fuente a hebreo? - Andrey Rubshtein
@Andrey: ¿qué fuente cambiar y de qué manera? - shahar_m
la fuente de
th
al hebreo uno, como David - Andrey Rubshtein@Andrey: sí, lo he intentado.
set(th, 'FontName', 'David')
simplemente cambie la fuente sin cambiar la alineación. - shahar_m