Utilizando el marco de Qt, ¿cómo medir el ancho (en píxeles) de un fragmento de texto representado con una fuente/estilo determinado?Medición de ancho de texto en Qt
35
A
Respuesta
60
Puede usar la clase QFontMetrics; consulte el método width() que le puede dar el ancho de un QString dado.
QFont myFont(fontName, fontSize);;
QString str("I wonder how wide this is?");
QFontMetrics fm(myFont);
int width=fm.width(str);
6
un poco tarde, pero tal vez ayuda a alguien
en el paintEvent
QString text("text");
QFontMetrics fm = painter.fontMetrics();
int width = fm.width(text);
Chears Alexander
5
Como complemento a la respuesta por @ Pablo, he encontrado que al pintar texto (Qt4.8 en Linux), el ancho de un texto pintado realmente en comparación con el ancho de lo que QFontMetrics::boundingRect
devuelve a menudo está desactivado. En mis casos, la pintura a menudo era demasiado amplia.
Si desea resultados precisos al pintar texto (por ejemplo, para dimensionar rectángulos dibuje texto), mejor utilice las funciones boundingRect
provistas directamente por QPainter
.
Cuestiones relacionadas
- 1. texto de medición en WPF
- 2. Medición del ancho de píxel de una cadena
- 3. Medición del ancho del texto que se dibujará en Canvas (Android)
- 4. medición cadena con Graphics.MeasureString
- 5. Para Qt 4.6.x, ¿cómo auto-tamaño de texto para caber en un ancho especificado?
- 6. Cuadro de texto de autocompletar en qt?
- 7. Obtener ancho de texto en MFC
- 8. qt dibujar texto colorido
- 9. Medición de la altura del texto que se dibujará en Canvas (Android)
- 10. Medición de latencia
- 11. Medición de distancias cortas
- 12. Qt - leyendo de un archivo de texto
- 13. SVG obtener ancho de elemento de texto
- 14. Ancho de input type = elemento de texto
- 15. ancho de cuadro de texto jeditable
- 16. Consola de Windows y Qt Texto Unicode
- 17. Onclick Expandir ancho del cuadro de texto
- 18. Kalman Tracking - Varianza de medición
- 19. Envoltura de texto Qml (ancho máximo)
- 20. Cobertura del código de medición en Delphi
- 21. Medición de tiempo precisa en Java
- 22. Estadísticas del proceso de medición en Linux
- 23. Detectar el ancho del texto en vb.net
- 24. ¿Cómo imprimir archivos de texto en la impresora en Qt?
- 25. Problema de ancho con sangría de texto negativo en CSS
- 26. Configuración del ancho de la vista de texto en LinearLayout
- 27. Establecer el ancho de columna de texto variable en printf
- 28. Medición en un sitio web
- 29. Ancho en píxeles de un texto/título en Delphi 7
- 30. área de texto con un ancho de 100% ignora el ancho del elemento padre en IE7
Encontré la misma situación en OS X con Qt 5.5.1. La altura estaba apagada. Estaba usando un QFontMetrics independiente, pero necesitaba establecer la fuente en el pintor y usar su boundingRect directamente para medir el texto con precisión. – kainjow