Erw*_*lle 1 qt qt5 qtstylesheets
我正在为我的 GUI 使用 qss 样式表。它工作得很好,但我想为我的自定义小部件定义不同的样式表。例如,QPushbutton的样式效果很好,但我想应用不同的样式MyQPushButton(从 QPushButton 扩展)。
我尝试过这样的事情:
MyQPushButton
{
color: #dcdcdc;
// some code here
}
QPushButton
{
color: #b1b1b1;
// some code here
}
Run Code Online (Sandbox Code Playgroud)
不过QPushButton的风格已经被应用了MyQPushButton。如何覆盖这种行为?
Ozan Yurtsever的答案有效,但却是不好的做法。
您不应该在样式表中使用对象名称,除非您想在应用程序中设置非常独特的小部件的样式。它很容易出错并且比较冗长。
默认情况下,Qt 样式表已经允许您想要的内容,您可以覆盖子类的样式(请参阅文档这部分的末尾)。
正如文档中所述,样式表中声明的顺序很重要,因此您的样式表应该是:
QPushButton
{
color: #b1b1b1;
// some code here
}
MyQPushButton
{
color: #dcdcdc;
// some code here
}
Run Code Online (Sandbox Code Playgroud)
否则 的样式QPushButton将覆盖 的样式,MyQPushButton因为MyQPushButton也是QPushButton.
还可以将样式的范围限制为仅类而不是子类.QPushButton { /*some code*/ },请参阅有关选择器的文档。
最后一个提示,我遇到了样式表不适用于子类的问题,请检查您是否没有忘记Q_OBJECT子类中的宏。
| 归档时间: |
|
| 查看次数: |
5762 次 |
| 最近记录: |