查看完整版本: [-- 接受事件和调用基类事件有什么区别? --]

QTCN开发网 -> Qt基础编程 -> 接受事件和调用基类事件有什么区别? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

qazaq408 2017-05-09 10:40

接受事件和调用基类事件有什么区别?

比如一个自定义按钮,继承自QPushButton, 我希望这个自定义的按钮在关闭的时候发射一个信号,于是我需要修改类的关闭事件函数
  1. class CustomButton:public QPushButton
    {
    //...
    void closeEvent(QCloseEvent* event);
    };
在这个函数中
  1. void CustomButton::closeEvent(QCloseEvent* event)
    {
        emit customSignal();
        ecent->accept(); //写法一
        QPushButton::closeEvent(event);  //写法二
    }

对于这个关闭事件函数,除了额外发射一个自定义的信号外,我需要他执行正确的关闭功能,
写法一 接受事件
写法二 调用基类的关闭函数

我想问下,写法一和写法二都能正确的关闭this,他们有什么区别么?


lemonzll 2017-05-09 10:51
像这种疑问你可以查下Qt的代码,QPushButton没有定义closeEvent的实现,父类QAbstractButton也没定义,再上一层的QWidget定义了,代码是
void QWidget::closeEvent(QCloseEvent *event)
{
    event->accept();
}
也就是写法一和写法二其实是一样的。


查看完整版本: [-- 接受事件和调用基类事件有什么区别? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled