在Windows 7操作系统上恢复默认GUI QStyle

时间:2011-01-02 04:17:24

标签: c++ qt user-interface

我正在使用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样式更改为默认样式?感谢。

1 个答案:

答案 0 :(得分:5)

经过一些sourcediving之后,事实证明样式的对象名称设置为样式名称,因此您可以说:

QString defaultStyle = this->style()->objectName();

以后

qApp->setStyle(defaultStyle);