qt QWidget::closeEvent link issue

qt QWidget::closeEvent link issue

本文关键字:issue link closeEvent qt QWidget      更新时间:2023-10-16

我有一个相当大的应用程序,它在带有Qt5.10.0和minGW32编译器的Windows上运行良好。 然后我添加了一个基于 QDialog 的新窗口。在这个新类中,我尝试重新实现QDialog::closeEvent。在头文件中:

virtual void closeEvent(QEvent *pEvent) override;

然后,我收到警告

xxx::closeEvent hides overloaded virtual function

,因为参数是QCloseEvent类型,并且链接错误。

所以,我试图:

  • 重新实现关闭事件(Q关闭事件 *p事件(
  • 删除关闭事件方法
  • 停止使用该窗口并将其从 .pro 中删除

无论我的试验如何,以下链接错误仍然存在,并避免我再编译:

undefined reference to `QWidget::closeEvent(QEvent*)'

在许多moc_"guifile".o.o.上,所有moc_files.o都是生成的。最后一个错误是:

collect2.exe: error: ld returned 1 exit status

(此外,Qt创建者声称当我尝试从"问题"选项卡中点击链接时,它找不到这些moc文件。

奇怪的是,我再也不在任何源文件或生成的文件中使用closeEventmoc_files.cpp不包含任何关闭事件字符串。

但是moc_files.o确实包含对__ZN7QWidget10closeEventEP6QEvent的引用,例如,这是错误的(正确的签名是QWidget::closeEvent(QCloseEvent *e((,但是我如何避免它被生成?

我已经尝试了几次清理/重新编译/删除构建文件夹。

显然,我不希望在这里收到解决方案,但是任何帮助我确定搜索位置的提示将不胜感激。

有什么帮助?重新安装Qt/minGW似乎没有用,因为它已经工作了几个月?

谢谢

问题来自对Qt包含文件的修改