sepera_okeq Asked:2022-05-25 01:01:54 +0000 UTC2022-05-25 01:01:54 +0000 UTC 2022-05-25 01:01:54 +0000 UTC 如何确定在操作系统中选择了哪种颜色主题? 772 如何确定在操作系统中选择了哪种颜色主题(深色/浅色/自定义)? 我想通过使用 Qt 在操作系统中确定选定的颜色主题来独立更改应用程序中的颜色主题,但我不知道如何。 c++ 1 个回答 Voted Best Answer Chorkov 2022-05-25T13:48:28Z2022-05-25T13:48:28Z 您可以使用QPalette类获得当前方案的原色。 QGuiApplication::palette根据当前 OS 方案创建调色板,除非已通过命令行参数选择了另一个方案,或者已通过调用setPalette、setStyleSheet、 . 设置了特殊方案或调色板setStyle。 例子: int main(int argc, char *argv[]) { QApplication a(argc, argv); QPalette basePalette; QColor baseColor = basePalette.base().color(); QColor newBase= QColor::fromRgbF( 1-baseColor.redF(), 1-baseColor.greenF(), 1-baseColor.blueF() ); a.setPalette( QPalette( newBase ) ); QMessageBox::information(nullptr,"test", "Test of base color invert..."); return a.exec(); }
您可以使用QPalette类获得当前方案的原色。
QGuiApplication::palette根据当前 OS 方案创建调色板,除非已通过命令行参数选择了另一个方案,或者已通过调用setPalette、setStyleSheet、 . 设置了特殊方案或调色板setStyle。例子: