您的位置:首页 > 编程语言 > Qt开发

无法关闭的QT程序(覆盖closeEvent,新建QProcess并脱离关系)

2015-10-01 17:26 405 查看
做一个无法关闭的QT程序(想关闭时要在任务管理器里关闭),看似很难,

其实它并不难,只要让程序在关闭时启动它自身就可以了。

上代码:

[cpp] view plaincopyprint?

#include <QtGui>

class Temp : public QWidget

{

Q_OBJECT

private:

QLabel *label;

protected:

void closeEvent(QCloseEvent *event);

public:

Temp(QWidget *parent = 0);

~Temp();

};

Temp::Temp(QWidget *parent)

: QWidget(parent)

{

label = new QLabel("You can't close me, haha.", this);

QVBoxLayout *layout = new QVBoxLayout;

layout->addWidget(label);

setLayout(layout);

move(200, 200);

}

Temp::~Temp()

{

}

void Temp::closeEvent(QCloseEvent *event)

{

//重载关系事件函数,使程序在关闭自己的同时重新打开自己

QProcess *p = new QProcess(this);

QString str = QApplication::applicationFilePath();

p->startDetached(str);

}

#include "main.moc"

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

Temp *temp = new Temp;

temp->show();

return app.exec();

}

/article/2021937.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: