El cambio de fondo de pestañas QTabBar indexados mediante hojas de estilo
Pregunta
El uso de hojas de estilo Qt, es posible establecer un color de fondo diferente para cada pestaña en un QTabBar que tiene 4 o más pestañas?
Mi aplicación Qt tiene 6 pestañas debajo de la barra de menú. Me gustaría cambiar sus colores de fondo a 6 diferentes colores mediante hojas de estilo.
2 números parecen estar de pie en mi camino:
-
Sólo puedo estilo de la "primera", "medio" y "últimos" pestañas usando la sintaxis de estilo puro (de ahí por qué digo "4" o más pestañas).
-
No creo que una de las pestañas son widgets hijos del QTabBar que pueda tener acceso. La idea es que luego podría adjuntar una propiedad para cada ficha niño que podría hacer referencia a la hoja de estilo.
Por ejemplo:
// Stylesheet
QTabBar::tab[index="3"] {
background: blue;
}
// Code
QTabBar* bar = new QTabBar;
int index = bar->addTab("Tab 1");
QWidget* tab1; //= ????
tab1->setProperty("index", index);
Cualquier ayuda sería muy apreciada. Gracias.
Solución
Las pestañas individuales son estructuras en lugar de objetos. Estas estructuras se utilizan en la pintura. Ver el href="http://qt.gitorious.org/qt/qt/blobs/master/src/gui/widgets/qtabbar_p.h" rel="nofollow noreferrer"> Qt fuente
He tenido un experimento con esto y no puedo encontrar una manera de acceder a un índice directo, como usted ha indicado. Para su referencia, He intentado utilizar las propiedades tales como el texto, información sobre herramientas, whatsThis pero no podía acceder a cualquiera de ellas de las hojas de estilo, por desgracia. Me temo que no creo que lo que quiere hacer es posible sin la subclasificación y la modificación de los eventos de pintura usted mismo.