• 2669阅读
  • 1回复

接受事件和调用基类事件有什么区别? [复制链接]

上一主题 下一主题
离线qazaq408
 

只看楼主 倒序阅读 楼主  发表于: 2017-05-09
比如一个自定义按钮继承自QPushButton, 我希望这个自定义的按钮在关闭的时候发射一个信号,于是我需要修改类的关闭事件函数
  1. class CustomButton:public QPushButton
  2. {
  3. //...
  4. void closeEvent(QCloseEvent* event);
  5. };
在这个函数中
  1. void CustomButton::closeEvent(QCloseEvent* event)
  2. {
  3.     emit customSignal();
  4.     ecent->accept(); //写法一
  5.     QPushButton::closeEvent(event);  //写法二
  6. }

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

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

离线lemonzll

只看该作者 1楼 发表于: 2017-05-09
像这种疑问你可以查下Qt的代码,QPushButton没有定义closeEvent的实现,父类QAbstractButton也没定义,再上一层的QWidget定义了,代码是
void QWidget::closeEvent(QCloseEvent *event)
{
    event->accept();
}
也就是写法一和写法二其实是一样的。
快速回复
限100 字节
 
上一个 下一个