2011-10-21 4 views
1

J'ai créé une sous-classe de QGLwidget et j'espérais pouvoir utiliser une feuille de style pour dire à OpenGL comment rendre une scène.Qt StyleSheet attribut de style personnalisé personnalisé QGLwidget

Par exemple:

qApp->setStyleSheet("CustomWidget { background-color: yellow }"); 

Puis, dans ma méthode paintGL:

QColor bg = "Get 'background-color' style somehow" 

glClearColorf(bg.redF(), bg.greenF(), bg.blueF(), 0); 
glClear(GL_COLOR_BUFFER_BIT) 

Aussi, est-il possible de créer des attributs de feuille de style personnalisée?

qApp->setStyleSheet("CustomWidget { foo-attr: 1 }"); 

J'ai lu sur les classes QStyle et QStyleOption, mais je ne comprends pas tout à fait la façon de les appliquer à une application pratique.

Répondre

1

Vous pouvez déclarer Q_PROPERTY dans votre widget personnalisé puis paramétrez avec

CustomWidget 
{ 
    qproperty-yourPropertyName: "value"; 
} 

Vous pouvez accéder à BG de votre widget personnalisé avec QPalette

QColor bg = palette().color(QPalette::Window); 

Mais je ne sais pas si elle sera travail

+0

Merci. Cela fonctionne très bien. btw 'background_color = palette(). color (QPalette :: Window)' – srossross

+0

C'est bien! Mon mauvais ... Je suis content d'avoir pu aider –