作者MOONY135 (談無慾)
看板C_and_CPP
標題Re: [問題] 程式運行完之後自己關掉自己
時間Sun Oct 23 10:27:32 2016
※ 引述《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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1477189655.A.A1D.html
1F:→ bdvstg: 放大絕 QCoreApplication::exit(0); 試試 10/23 16:26
2F:→ MOONY135: 所以是看起來想法沒錯 只是不成功而已嗎 10/23 17:19
3F:→ uranusjr: 有 qApp->quit() 可以接啊, 教學都有教吧... 10/23 19:28
有把自己關起來了
但會跳應用程式錯誤 查了一下是APPCRASH...
※ 編輯: MOONY135 (59.124.46.66), 10/24/2016 18:09:17
4F:→ OPIV: 你確定那是 quit 不是 crash 嗎 哈哈 10/24 18:29
後來發現是 因為下載段 取得下載網址的txt被我砍掉 造成讀不到網址
但程式還是一直在跑下載
※ 編輯: MOONY135 (59.124.46.66), 10/24/2016 18:53:06