Qt学习: QCloseEvent关闭事件的使用及代码示例
2017-10-14 09:22
423 查看
QCloseEvent事件是指,当你鼠标点击窗口右上角的关闭按钮时,所触发的函数.如果你没有重写virtual closeEvent(QCloseEvent*event);这个虚函数的话,系统是默认接受关闭事件的,所以就会关闭窗体,但有的时候,比如在记事本程序中,但你的文本未保存时,点击关闭按钮,就会跳出是否保存的提示框,这是因为它重写了关闭事件这个虚函数.
首先用Qt设计师拖拽一个QTextEdit,然后进行整体布局.
以下是”c.cpp”下的代码:
以下是”c.h”下的代码:
最后是”main.cpp”的代码:
首先用Qt设计师拖拽一个QTextEdit,然后进行整体布局.
以下是”c.cpp”下的代码:
#include "c.h" c::c(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); } c::~c() { } void c::closeEvent(QCloseEvent* event) { //当文档内容被修改时. if (ui.textEdit->document()->isModified()) { //跳出信息框,你是否要关闭. auto temp = QMessageBox::information(this, "tooltip", QString::fromLocal8Bit("你是否要关闭?"), QMessageBox::Yes | QMessageBox::No); if (temp == QMessageBox::Yes) { // 接受了 要关闭这个窗口的事件. accept和ignore只是作为一个标志. event->accept(); } else { //忽略了 要关闭这个窗口的事件.当前窗口就不会被关闭. event->ignore(); } } else { event->accept(); } }
以下是”c.h”下的代码:
#ifndef C_H #define C_H #include <QtWidgets/QMainWindow> #include "ui_c.h" #include <QCloseEvent> #include <QMessageBox> class c : public QMainWindow { Q_OBJECT public: c(QWidget *parent = 0); ~c(); protected: //这是一个虚函数,继承自QEvent.只要重写了这个虚函数,当你按下窗口右上角的"×"时,就会调用你所重写的此函数. void closeEvent(QCloseEvent*event); private: Ui::cClass ui; }; #endif // C_H
最后是”main.cpp”的代码:
#include "c.h" #include <QtWidgets/QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); c w; w.show(); return a.exec(); }
相关文章推荐
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- Qt之拦截关闭窗口的QCloseEvent简单使用
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- Qt之拦截关闭窗口的QCloseEvent简单使用
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 【Unity3D API的学习与使用】Unity中的事件响应——UnityEvent
- Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例
- Qt QSortFilterProxyModel示例代码, 使用方法
- c# 学习笔记之九 事件(event)的使用,一个简单例子揭示机理
- QT学习记录(一)事件 (event)
- Qt使用一个事件队列对所有发出的事件进行维护(QObject的event()函数相当于dispatch函数),用EventLabel 继承QLabel作为例子(简单明了) good
- CityMaker学习教程10 示例代码的使用Javascript
- delphi中窗体关闭事件FormCloseQuery与assigned函数的使用
- C#中使用事件(代码示例)
- Qt 事件 QMouseEvent 鼠标示例
- Qt QSortFilterProxyModel示例代码, 使用方法
- linux 学习笔记(三):open、creat、close 函数的使用,文件的创建、打开与关闭