两次设置QApplication :: style后程序崩溃

时间:2013-12-12 18:01:11

标签: c++ qt crash segmentation-fault qmake

#include <QApplication>
int main() {
   QApplication::setStyle("windows");
   QApplication::setStyle("windows");
}

该程序生成Segmentation fault (core dumped)。我的qmake版本为4.7.2。这是Qt错误还是我的版本太旧了?

1 个答案:

答案 0 :(得分:2)

在设置QApplication的样式之前,必须先创建一个QApplication实例。从文档

  

样式对象的所有权转移到QApplication,所以   QApplication将在应用程序出口或何时删除样式对象   设置了一个新样式,旧样式仍然是它的父级   应用对象。

我认为它正在崩溃,因为没有QApplication来获取该样式的所有权。通常,创建QApplication是您应该做的第一件事。

#include <QApplication>
int main() {
   QApplication a(argc, argv);
   QApplication::setStyle("windows");
   QApplication::setStyle("windows");
}