我有应用程序类的Qt应用程序:
class Application : public QApplication {
public:
Application(int argc, char** argv);
~Application();
};
一切正常,直到我添加
private:
const QString NAME = "QtImageViewer";
当我尝试运行它时,该应用程序崩溃了10次
主要看起来像
int main(int argc, char** argv)
{
Application app(argc, argv);
app.setApplicationName("QtImageViewer");
MainWindow mainWindow;
mainWindow.show();
return (app.exec());
}
我想知道错误是什么,因为我不知道。
答案 0 :(得分:2)
修正了它,与here相同的问题。
我的Application类构造函数签名是Application(int argc, char** argv);
,但QApplication有QApplication(int &argc, char **argv)
将Application(int argc, char** argv);
更改为Application(int& argc, char** argv);
,一切正常。
感谢所有人的帮助。
答案 1 :(得分:0)
我发表评论,但在撰写本文时我没有足够的声誉。为了记录,我克隆了您链接到的存储库。我注意到你似乎没有使用Qt Creator但可能只是使用cmake
。我的Qt 5安装不在你的位置,所以我把所有内容都扔进Qt Creator并从那里构建并运行项目。
程序运行和关闭都很好,即使你建议的改变为你打破。 (在Qt 5.5,g ++ 5.4.0的Ubuntu 16上构建和运行。)
此外,我可能误解了Igor的评论,但由于Application
是在堆栈上进行的,因此~Application()
没有引入额外的堆释放。