2010-01-18 14 views
6

Si Acabo de hacer un estándar TextView con el Justification conjunto de Center, se ve algo como esto:En Gtk, ¿cómo centro el texto dentro de un TextView verticalmente?

Center-Justified TextView

Si también quiero centrar el texto en vertical, como horizontal, hacer como lo hago ¿esta?

+0

No veo ninguna manera de hacer esto "normalmente" con GtkTextView. Probablemente podría subclasificar GtkTextView y anular algunas de sus funciones de dibujo de texto, pero puede ser bastante difícil. En su lugar, recomiendo pedir en la lista de correo de GTK +, ya que hay más personas con conocimiento relevante allí. –

Respuesta

4

TextViews normalmente son para una gran cantidad de texto que el usuario puede editar. Como tal, puede crecer demasiado y tener que desplazarse, de ahí la dificultad con el centrado vertical.

Si solo lo está usando para mostrar un mensaje que no tiene que editarse, puede intentar con Gtk.Label, que puede centrar verticalmente.

+1

Veo, estoy tomando su consejo por ahora y usando etiquetas en lugar de TextViews. Eventualmente, sin embargo, me gustaría que puedan ser editados en el lugar. Espero que haya alguna solución para esto. –

3

Puede fudgear tal alineación actualizando dinámicamente pixels-above-lines según el tamaño del control de vista de texto y el tamaño del texto que se muestra en él.

+0

Al combinar píxeles sobre líneas con una fuente monoespaciada o al dibujar el texto para calcular cuántas líneas ocupa, puede calcular automáticamente cuál debe ser el valor para centrarlo (comparando con la altura del TextView sí mismo). – Peter

+0

@minitech: Hace mucho tiempo que pasé de este problema y no volví a investigar esta solución. Desde que colocó la recompensa en esta pregunta, ¿esta solución funcionó para usted? Aceptaré la respuesta si fue así. –

+1

@Matthew: No, no he descubierto cómo medir el texto, pero esta es la respuesta más correcta de todas, y no quería que se desperdiciara la recompensa :) Añadiré un código de muestra cuando lo consigo, sin embargo. – Ryan

Cuestiones relacionadas