1.QT 中关于closeEvent及resizeEvent的使用

文章介绍了QT中的closeEvent函数,用于在关闭窗口时询问用户是否确认,以及resizeEvent函数,显示窗口的旧尺寸和拖拽时的新尺寸。
摘要由CSDN通过智能技术生成
        1.closeEvent是QT中关闭窗口事件的函数,利用QMessageBox对用户进行关闭操作时进行询问和进行下一步操作。具体实现如下:

.h文件

void closeEvent(QCloseEvent *ev);//声明关闭窗口事件

.cpp文件

void Widget::closeEvent(QCloseEvent *ev)
{
    int ret=QMessageBox::question(this,"提示","是否关闭此窗口");//提示窗口返回类型为int类型
    if(ret==QMessageBox::Yes){
        ev->accept();
    }else{
        ev->ignore();
    }

}

     运行结果显示消息提示框,点击YES关闭窗口,点击NO退回窗口。

2.resizeEvent窗口尺寸函数,显示旧窗体大小及拖拽窗口时当前窗口的大小。

.h文件

void resizeEvent(QResizeEvent *ev);//函数声明

  .cpp文件

void Widget::resizeEvent(QResizeEvent *ev)
{
    qDebug()<<"旧窗口大小"<<ev->oldSize()<<"当前窗口大小"<<ev->size();
}

当拖拽窗口时会动态显示窗口当前大小

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QtcloseEvent是QWidget类的一个事件处理函数,用于处理窗口关闭事件。通过重写closeEvent函数,可以在窗口关闭时执行自定义的操作。 以下是重写closeEvent的步骤: 1. 在自定义的QWidget派生类,重写closeEvent函数。可以在头文件(.h)声明该函数,并在源文件(.cpp)实现。 2. 在closeEvent函数,可以添加自定义的逻辑代码,例如保存数据、确认关闭等操作。 3. 在重写closeEvent函数时,需要调用父类的closeEvent函数,以确保窗口的默认关闭行为仍然有效。 下面是一个示例代码,展示了如何重写closeEvent函数: ```cpp // MyWidget.h #include <QWidget> class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = nullptr); protected: void closeEvent(QCloseEvent *event) override; }; // MyWidget.cpp #include "MyWidget.h" #include <QMessageBox> MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { // 构造函数 } void MyWidget::closeEvent(QCloseEvent *event) { // 自定义的关闭事件处理逻辑 QMessageBox::StandardButton reply; reply = QMessageBox::question(this, "确认关闭", "确定要关闭窗口吗?", QMessageBox::Yes | QMessageBox::No); if (reply == QMessageBox::Yes) { // 执行关闭操作 event->accept(); } else { // 取消关闭操作 event->ignore(); } } ``` 在上述示例,我们创建了一个名为MyWidget的自定义QWidget派生类,并重写了closeEvent函数。在closeEvent函数,我们使用QMessageBox显示一个确认对话框,询问用户是否确定关闭窗口。根据用户的选择,我们可以执行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值