如何将QPalette设置回默认系统调色板?

Ral*_*kum 3 qt color-scheme qstyle qt5 qpalette

根据示例,我最初以深色主题启动应用程序。

我想让用户可以切换回其操作系统的当前默认系统颜色配置文件(在我启动该应用程序而未设置QPalette的情况下)。那有可能吗?

t3f*_*--i 6

一种可能的方法是仅使用默认设置和参数:

void MainWindow::on_pushButton_clicked()
{
    qApp->setPalette(this->style()->standardPalette());
    qApp->setStyle(QStyleFactory::create("WindowsVista"));
    qApp->setStyleSheet("");
}
Run Code Online (Sandbox Code Playgroud)

但是这种方式有一些局限性:我们需要一些QWidget设置调色板的方式,以我使用thispoiter的方式QMainWindow,但是我认为这并不是一个严重的问题。

  • 您可以使用 qApp->setPalette(QApplication::style()->standardPalette()); 以避免需要“this”指针。 (3认同)