2011-10-21 87 views
1

我已经创建了QGLwidget的子类,我希望我可以使用样式表来告诉openGL如何渲染场景。Qt StyleSheet自定义样式属性自定义QGLwidget

例如:

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

然后在我paintGL方法:

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

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

另外,是否有可能创建自定义样式表属性?

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

我对将QStyle和QStyleOption班念了起来,但我不太明白如何将它们应用到实际应用中。

回答

1

您可以在自定义的widget声明Q_PROPERTY,然后将它们与

CustomWidget 
{ 
    qproperty-yourPropertyName: "value"; 
} 

您可以QPalette

访问自定义窗口小部件的BG
QColor bg = palette().color(QPalette::Window); 

但我不知道这是否会工作

+0

谢谢。这很好。 btw'background_color = palette()。color(QPalette :: Window)' – srossross

+0

这就是对的!我的坏...很高兴我能帮上忙 –