有時候我們希望在關閉視窗之前做一些操作,例如儲存快取資料或向使用者提示是否關閉視窗等等。
由於一般的視窗都是繼承自qwidget, 那麼我們可以通過覆蓋qwidget中的虛函式closeevent(qcloseevent* event);來達到這個目的。
(1)首先新增依賴庫:
#include
(2)接著宣告和定義closeevent函式:
a).h檔案
protected:
void closeevent(qcloseevent *event);
b).cpp檔案
void mainwindow::closeevent(qcloseevent *event)
剛剛將closeevent應用在了乙個小例子上面:
我在主程序中fork()了乙個子程序,希望在關閉主視窗後(也就是主程序退出)結束子程序。那麼這個時候一般的做法就是監聽視窗的關閉事件;然後將要關閉的視窗向本身程序(父程序)傳送sigint訊號,主程序通過已註冊好的訊號捕捉函式來結束子程序。
**演示:
(1)main.cpp檔案
int pid_t pid;
pid_t child_make()
//todo: 以下是子程序的邏輯部分
}// 結束子程序
void sig_int(int signal)
int main(int argc, char *argv)
(2)mainwindow.h檔案
#include #include namespace ui
class mainwindow : public qmainwindow
;
(3)mainwindow.cpp檔案
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include mainwindow::mainwindow(qwidget *parent) :
qmainwindow(parent),
ui(new ui::mainwindow)
mainwindow::~mainwindow()
// 在closeevent內實現具體邏輯
void mainwindow::closeevent(qcloseevent *event)
Qt捕捉視窗關閉事件
有時候我們希望在關閉視窗之前做一些操作,例如儲存快取資料或向使用者提示是否關閉視窗等等。由於一般的視窗都是繼承自 qwidget,那麼我們可以通過覆蓋 qwidget 中的虛函式 closeevent qcloseevent event 來達到這個目的。1 首先新增依賴庫 include 2 接著宣...
QT 關閉視窗與資源釋放問題
對於使用指標,使用new建立的視窗,當然可以使用delete顯示的釋放其占用的資源 widget w new widget delete w 對於使用指標,使用new建立的視窗,還可以使用qwidget setattribute方法來當視窗關閉後自動釋放其占用的資源,而不使用者顯示的去呼叫delet...
Qt捕捉最大最小化事件
使用場景 沿用qt框架自帶的最大最小化按鈕的情況下又希望自主處理放大縮小事件 解決方法 過載 void changeevent qevent event 函式,監聽windowsate 並處理。例子 h void changeevent qevent event cpp void maywidget...