我有样式管理器,因此用户可以在运行时更改样式表和调色板。但在此操作之后,并非所有小部件都“重新设置样式”。重新创建小部件时应用新外观。从主窗口构造函数调用的相同代码按预期工作。是否存在任何通知所有小部件它们应该刷新调色板和样式表的全局信号?
QFile file(":/qss/default.qss");
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());
qApp->setStyleSheet(styleSheet);
QPalette p = qApp->palette();
p.setColor(QPalette::Window, QColor(53,53,53));
p.setColor(QPalette::Button, QColor(53,53,53));
p.setColor(QPalette::Highlight, QColor(175,0,0));
p.setColor(QPalette::ButtonText, QColor(255,255,255));
p.setColor(QPalette::WindowText, QColor(255,255,255));
qApp->setPalette(p);