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

看板C_and_CPP作者 (談無慾)時間7年前 (2016/10/23 10:27), 7年前編輯推噓0(004)
留言4則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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() 來關掉自己 但還是會出現應用程式錯誤...不知道是不是哪邊搞錯了 是該關的沒關好嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.219.95 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1477189655.A.A1D.html

10/23 16:26, , 1F
放大絕 QCoreApplication::exit(0); 試試
10/23 16:26, 1F

10/23 17:19, , 2F
所以是看起來想法沒錯 只是不成功而已嗎
10/23 17:19, 2F

10/23 19:28, , 3F
有 qApp->quit() 可以接啊, 教學都有教吧...
10/23 19:28, 3F
有把自己關起來了 但會跳應用程式錯誤 查了一下是APPCRASH... ※ 編輯: MOONY135 (59.124.46.66), 10/24/2016 18:09:17

10/24 18:29, , 4F
你確定那是 quit 不是 crash 嗎 哈哈
10/24 18:29, 4F
後來發現是 因為下載段 取得下載網址的txt被我砍掉 造成讀不到網址 但程式還是一直在跑下載 ※ 編輯: MOONY135 (59.124.46.66), 10/24/2016 18:53:06
文章代碼(AID): #1O320NeT (C_and_CPP)
文章代碼(AID): #1O320NeT (C_and_CPP)