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

Don*_*alo 1 c++ user-interface qt

我正在使用Windows 7 Ultimate 32位上的Qt 4.7编写GUI应用程序.我想让用户从主菜单中更改GUI样式.可以从菜单中选择几个QStyles(QCDEStyle,QWindowsStyle,QCleanlooksStyle等),我用它QApplication::setStyle()来设置新样式.

我想有一个选项可以返回到Windows 7的默认样式.默认样式,我的意思是QApplication::style()在明确使用任何样式之前使用返回的样式QApplication::setStyle().以下是不起作用的尝试:

QStyle *default_style;

// During initialization of QMainWindow
default_style = QApplication::style();

// When default style is chosen from main menu
QApplication::setStyle(default_style);
Run Code Online (Sandbox Code Playgroud)

以上将无法工作,因为QApplication::setStyle()取得对象的所有权并删除以前QStyle*.

如何将QApplication样式更改为默认样式?谢谢.

Gyö*_*sek 5

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

QString defaultStyle = this->style()->objectName();
Run Code Online (Sandbox Code Playgroud)

然后

qApp->setStyle(defaultStyle);
Run Code Online (Sandbox Code Playgroud)