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

标签 c++ qt crash segmentation-fault qmake

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

此程序产生段错误(核心已转储)。我的 qmake 版本是 4.7.2。这是 Qt 错误还是我的版本太旧?

最佳答案

在设置样式之前,您必须创建 QApplication 的实例。来自文档

Ownership of the style object is transferred to QApplication, so QApplication will delete the style object on application exit or when a new style is set and the old style is still the parent of the application object.

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

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

关于c++ - 两次设置 QApplication::style 后程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20550822/

相关文章:

c# - 强制 Visual Studio 重建依赖项目

c++ - 合并两个文件,非静态数据成员的使用无效

c++ - 用tm加减时间

c++ - QApplication 的 installTranslator 方法不改变语言

c++ - 如何在 2D 中绘制/变形 QImage?

android - native 崩溃调用堆栈中的地址和偏移量到底是什么?

qt - 在 OpenCV 中使用 Haar 分类器进行键盘控制?

c++ - Qt QTcpSocket 异步写入

java - Intent 服务使我的应用程序崩溃?

iphone - 应用程序由于iPhone中的 “SIGABRT”而崩溃了?