【问题标题】:How to set QPalette back to default system palette?如何将 QPalette 设置回默认系统调色板?
【发布时间】:2015-10-29 04:23:50
【问题描述】:

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

我想让用户能够切换回他们操作系统的当前默认系统颜色配置文件(因为我在没有设置 QPalette 的情况下启动该应用程序)。这可能吗?

【问题讨论】:

  • 您可以在更改之前保存当前调色板。

标签: qt qt5 color-scheme qstyle qpalette


【解决方案1】:

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

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

但是这种方式有一些限制:我们需要一些QWidget 来设置调色板,在我的方式中我使用this 指向QMainWindow,但我认为这不是那么严重的问题。

【讨论】:

  • 你可以使用 qApp->setPalette(QApplication::style()->standardPalette());以避免需要“this”指针。
  • 或者只是qApp->setStyle(qApp->style()->standardPalette());,在我看来,最直观的一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多