看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
bdvstg: 放大絕 QCoreApplication::exit(0); 試試 10/23 16:26
MOONY135: 所以是看起來想法沒錯 只是不成功而已嗎 10/23 17:19
uranusjr: 有 qApp->quit() 可以接啊, 教學都有教吧... 10/23 19:28
有把自己關起來了 但會跳應用程式錯誤 查了一下是APPCRASH... ※ 編輯: MOONY135 (59.124.46.66), 10/24/2016 18:09:17
OPIV: 你確定那是 quit 不是 crash 嗎 哈哈 10/24 18:29
後來發現是 因為下載段 取得下載網址的txt被我砍掉 造成讀不到網址 但程式還是一直在跑下載 ※ 編輯: MOONY135 (59.124.46.66), 10/24/2016 18:53:06