Re: [問題] 程式運行完之後自己關掉自己

作者: MOONY135 (談無慾)   2016-10-23 10:27:32
※ 引述《MOONY135 (談無慾)》之銘言:
: 開發平台(Platform): (Ex: Win10, Linux, ...)
: VS2015
: 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
: QT
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: 我做了一版下載檔案(按下BUTTON時會自己下載 解壓縮)
: 想讓他解壓縮完之後自己關掉
: 目前是把關掉程式寫在 on_btnDownload_clicked() 裡面
: 但發現這樣寫應用程式會關閉不完全...
: 請問我應該怎樣在程式做完步驟之後把自己關掉呢
: #include "myclass.h"
: using namespace std;
: MyClass::MyClass(QWidget *parent)
: : QMainWindow(parent)
: {
: ui.setupUi(this);
: manager = new QNetworkAccessManager(this);
: QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this,
: SLOT(finishedSlot(QNetworkReply*)));
: }
: void MyClass::on_btnDownload_clicked()
: {
: 下載的code...
: 解壓縮的code...
: this -> close();
: }
請問一下目前是這樣改寫
#include "myclass.h":
using namespace std;
MyClass::MyClass(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
manager = new QNetworkAccessManager(this);
QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this,
SLOT(finishedSlot(QNetworkReply*)));
connect(ui.btnDownload, SIGNAL(whenDownLoadFinished()), this, SLOT(close()));
}
void MyClass::on_btnDownload_clicked()
{
下載的code...
解壓縮的code...
emit whenDownLoadFinished();
}
按下btnDownload之後 做完一連串動作 發射 signal whenDownLoadFinished()
來關掉自己 但還是會出現應用程式錯誤...不知道是不是哪邊搞錯了
是該關的沒關好嗎?
作者: bdvstg (bdvstg)   2016-10-23 16:26:00
放大絕 QCoreApplication::exit(0); 試試
作者: MOONY135 (談無慾)   2016-10-23 17:19:00
所以是看起來想法沒錯 只是不成功而已嗎
作者: uranusjr (←這人是超級笨蛋)   2016-10-23 19:28:00
有 qApp->quit() 可以接啊, 教學都有教吧...
作者: OPIV (Monitor)   2016-10-24 18:29:00
你確定那是 quit 不是 crash 嗎 哈哈

Links booklink

Contact Us: admin [ a t ] ucptt.com