我正在使用Windows 7 Ultimate 32位上的Qt 4.7编写GUI应用程序。我想让用户从主菜单中更改GUI样式。可以从菜单中选择几个QStyles(QCDEStyle,QWindowsStyle,QCleanlooksStyle等),我使用QApplication::setStyle()
来设置新样式。
我想有一个选项可以返回到Windows 7的默认样式。默认样式,我的意思是在使用{{QApplication::style()
显式设置任何样式之前使用QApplication::setStyle()
返回的样式1}}。以下是不起作用的尝试:
QStyle *default_style;
// During initialization of QMainWindow
default_style = QApplication::style();
// When default style is chosen from main menu
QApplication::setStyle(default_style);
以上操作无效,因为QApplication::setStyle()
取得对象的所有权并删除之前的QStyle*
。
如何将QApplication
样式更改为默认样式?感谢。
答案 0 :(得分:5)
经过一些sourcediving之后,事实证明样式的对象名称设置为样式名称,因此您可以说:
QString defaultStyle = this->style()->objectName();
以后
qApp->setStyle(defaultStyle);