[Kde-devel-es] Averiguar las dimensiones de un texto

RVM usodebian at wanadoo.es
Sat May 8 18:03:15 CEST 2004


El Tue, 27 Apr 2004 18:31:22 +0200, Manuel Pérez López
<manuel.perez.lopez at hispalinux.es> escribió:

> El Martes 27 Abril 2004 17:58, RVM escribió:
> > Tengo un QLabel en el que van a ir apareciendo una serie de mensajes.
> > Quiero que el tamaño de ese QLabel sea el justo como para que el texto
> > mayor quepa perfectamente. No quiero que el widget varíe de tamaño
> > según el texto (he visto en el manual lo del setAutoResize), quiero
> > que el tamaño del widget sea fijo.
> >
> > Bien, pues teniendo todos los mensajes y sabiendo el font que se usará
> > ¿cómo puedo saber el tamaño que ocuparía cada uno de los mensajes,
> > teniendo en cuenta que el texto puede ocupar varias líneas, etc.?
> 
> Mira a ver si este ejemplo que te pongo te ayuda:
> 
> Esta funcion devuelve el tamaño en pixel de anchura de un texto QString
> (para la fuente helvetica y de tamaño 8).
> 
> #include <qfontmetrics.h> 
> int pixelText(QString text)
> {
> QFont myFont( "helvetica", 8, QFont::Normal ); 
> QFontMetrics myFontMetric( myFont );
> int pixelWidth = myFontMetric.width( text );
> //int pixelHeight = myFontMetric.height( );
> return pixelWidth;
> }

El problema es que en el QLabel puede haber texto que ocupe varias líneas,
con diferentes fonts, etc.

Casi consigo lo que quería usando un QSimpleRichText (y su adjustSize)
pero no sé porqué a veces no da las dimensiones correctas, aparte de que
parece que siempre intenta crear un widget pequeñito, y tampoco es eso,
quiero que el texto se vea bien.

¿Alguna otra pista?

Esto es casi lo último que me falta para acabar mi programa aunque la
verdad es que tampoco es algo fundamental, lo puedo dejar para la próxima
versión.

-- 
Ricardo Villalba
rvm at escomposlinux.org


More information about the Kde-devel-es mailing list