Pregunta

Proyectos interfaces de usuario con QtCreator bajo Windows, y portar el mismo archivo .ui bajo MacOSX conduce a diseños con algunas partes texto muy pequeño - En realidad, los HTML. Parece que viene del hecho de que QtCreator utiliza pt en lugar de px como unidad de tamaño del texto, y que las resoluciones de pantalla por defecto son bastante diferentes en Windows y MacOSX.

¿Hay alguna razón por la que no he venido a resultados más consistentes? Aparte de la edición de cada pt en px, ¿hay alguna solución

Gracias.

¿Fue útil?

Solución

Como regla general no se debe especificar los tamaños de fuente para los controles manualmente en Qt Designer / Creador ya que esto conduce a los prolems que tiene. La razón de inconsistencia es el hecho de que las diferentes plataformas utilizan diferentes configuraciones de DPI (96 ppp en Windows vs. 72 DPI en Mac OS X). Este resultado en fuentes que se muestran con diferentes tamaños.

Además, usted ha mencionado HTML. Asumo que ha configurado un texto HTML en un widget QTextEdit similar usando el editor incorporado. Al seleccionar un tamaño de fuente allí, Qt Creator producirá algo de HTML siguiente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:11pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hello World</p></body></html>

Como se puede ver, que establece algunos atributos font-size, que es realmente desagradable. Una solución sencilla, fácil de esta desaster es eliminar los atributos de style= por completo. Esto hace que el QTextEdit para utilizar la fuente de aplicaciones por defecto en lugar (que debe estar bien en todas las plataformas):

<html><head></head><body><p>Hello World</p></body></html>

Como nota al margen, esto es mucho más amigable para los traductores, ya que no tienen que luchar a través de todo el CSS inútil.

Desafortunadamente QTextEdit de Qt no soporta la especificación "por ciento" font-size (justo px y PT). Si así fuera, se podría haber usado algo así como "90%" para hacer el texto más pequeño que la fuente predeterminada sin dejar de ser en el lado seguro.

Otra opción sería un QWebView, que haces editable. Esto permite un buen formato de texto al tiempo que el subconjunto completo CSS. Pero eso podría ser excesiva.

Espero que ayude!

Otros consejos

¿Hay que establecer las propiedades de texto en el que .ui archivos? Por lo general, cuando se establece la propiedad de texto de un widget a continuación UIC reemplaza completamente la fuente de ese widget con algo que se crea a partir de cero en el código. Si se edita en las ventanas entonces la fuente tendrá un nombre relacionado ventanas que podría causar problemas en el mac.

Lo que suelo hacer es no tocar las fuentes en el diseñador para que los widgets de obtener sus fuentes por defecto que por lo general se ven bien y cambiarlos en el c'tor del widget de esta manera:

QFont f = ui.someLabel->font(); // get the current (default) font from the widget
f.setBold(true); // change only what's need to be changed
ui.someLabel->setFont(f); 
      // set the new and impreved font back to where it came from

De esta manera se puede evitar jugar con todo lo que es específico de la plataforma. Si el cambio es en realidad específica de la plataforma se puede elegir el más adecuado con el uso de #ifdef Q_OS_WIN32 o #ifdef Q_OS_MAC

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top