2015-08-06 8 views
2

Я начинаю свое приложение изначально в темной цветовой теме в соответствии с примером this.Как установить QPalette обратно в системную палитру по умолчанию?

Я бы хотел, чтобы пользователи могли вернуться к их текущим системным цветовым профилям своей операционной системы (так как я запускаю это приложение без установки QPalette). Это возможно?

+0

Вы можете сохранить текущую палитру перед ее заменой. –

ответ

4

Одним из возможных способов является просто использовать настройки по умолчанию и параметры:

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

Но этот способ имеет некоторые ограничения: нам нужны QWidget для настройки палитры, на моем пути я использую this poiter к QMainWindow, однако это не так серьезная проблема, я думаю.

+0

Вы можете использовать qApp-> setPalette (QApplication :: style() -> standardPalette()); чтобы избежать необходимости в «этом» указателе. – RandomGuy