关闭窗口终止线程/程序后的qt c ++

时间:2010-06-29 14:19:49

标签: c++ qt

我得到了这个主要内容;

#include <QtGui>
#include <iostream>
using namespace std;
#include "tray.h"

void main(int argc, char *argv[])
 {
    QApplication app(argc, argv);
    Tray iets;
    app.exec();
 }

当我在托盘中打开类似的东西时;

QFileDialog *dialog = new QFileDialog;
QString dir;

QString test = dialog->getOpenFileName(NULL, NULL, NULL, "Battlefield (*.exe)", NULL, NULL);
for(int i=0; i<test.split("/").size()-1; i++)
    dir+= test.split("/").at(i) + "/";
ui->lePath->setText(test);

我选择了文件终止另一个帖子/程序。

如何使用?

1 个答案:

答案 0 :(得分:2)

我不知道(也无法猜测)你的Tray课程是什么。

但是,Qt通常在最后显示的窗口(QWidget实例)关闭时终止程序。除非specified otherwise

如果Tray不是窗口(子类QWidget),则app.exec()没有要处理的消息循环并立即返回,从而终止程序。

您期望什么/您希望您的计划在这一点上做什么?


没有直接相关但仍然很重要:

您的main()功能确实应该返回退出状态。您只需更改main()即可:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Tray iets;
    return app.exec(); // app.exec() returns an exit status.
}