在类中覆盖 Qt 函数

Posted

技术标签:

【中文标题】在类中覆盖 Qt 函数【英文标题】:Overriding Qt function in classes 【发布时间】:2018-11-13 12:29:24 【问题描述】:

我有一个QDialog 类型的简单对话框。当用户单击“确定”按钮时,我想在关闭表单并返回调用者(主表单)之前进行一些验证。

我尝试在“CustomDialog.cpp”文件中添加以下代码:

void CustomDialog::accept()
  // My code...

但我收到此错误:

错误:虚函数 'accept' 有不同的调用约定 属性('void()')比它覆盖的函数(它有 调用约定 'void () attribute((thiscall))')

我做错了什么?我还需要在 CustomDialog.hpp 中添加一些内容吗?

【问题讨论】:

@Rhathin 谢谢!\ 【参考方案1】:

在您的.hpp 中,您应该在CustomDialog 类中声明accept() 方法。即void accept() override;public slots 下。

【讨论】:

不错。那么,调用约定问题到底是什么?

以上是关于在类中覆盖 Qt 函数的主要内容,如果未能解决你的问题,请参考以下文章

QT中使用函数指针

qt 键盘事件

QT的信号和槽

php--在类中声明常量的关键字

如何在类中有函数指针?

在类中引用函数时出现“调用没有匹配函数”