C++ Qt:“closeEvent”的行外定义与“MainWindow”中的任何声明都不匹配

C++ Qt:“closeEvent”的行外定义与“MainWindow”中的任何声明都不匹配,c++,qt,C++,Qt,我只想忽略用户在Qt,C中抛出的关闭事件++ 我试过已经在里面的东西 void主窗口::closeEventQCloseEvent*事件 { 事件->忽略; } 但这会使我发现closeEvent的行外错误定义与MainWindow中的任何声明都不匹配。我希望忽略闭幕式 头文件: ifndef主窗口 定义主窗口 包括 名称空间用户界面{ 类主窗口; } 类主窗口:公共QWidget { Q_对象 公众: 显式MainWindowQWidget*parent=nullptr; ~main窗口; 私

我只想忽略用户在Qt,C中抛出的关闭事件++

我试过已经在里面的东西

void主窗口::closeEventQCloseEvent*事件 { 事件->忽略; } 但这会使我发现closeEvent的行外错误定义与MainWindow中的任何声明都不匹配。我希望忽略闭幕式

头文件:

ifndef主窗口 定义主窗口 包括 名称空间用户界面{ 类主窗口; } 类主窗口:公共QWidget { Q_对象 公众: 显式MainWindowQWidget*parent=nullptr; ~main窗口; 私人: Ui::MainWindow*Ui; }; - endif//main窗口
解决方案是,您需要在头文件中声明将覆盖closeEvent。在文档中,您可以使用虚拟保护,这意味着您可以覆盖它

您的代码应如下所示:

头文件:

ifndef主窗口 定义主窗口 包括 名称空间用户界面{ 类主窗口; } 类主窗口:公共QWidget { Q_对象 公众: 显式MainWindowQWidget*parent=nullptr; ~main窗口; 受保护的: void closeEventQCloseEvent*事件覆盖; 私人: Ui::MainWindow*Ui; }; - endif//main窗口 cpp文件:

void主窗口::closeEventQCloseEvent*事件 { 事件->忽略; }
解决方案是,您需要在头文件中声明将覆盖closeEvent。在文档中,您可以使用虚拟保护,这意味着您可以覆盖它

您的代码应如下所示:

头文件:

ifndef主窗口 定义主窗口 包括 名称空间用户界面{ 类主窗口; } 类主窗口:公共QWidget { Q_对象 公众: 显式MainWindowQWidget*parent=nullptr; ~main窗口; 受保护的: void closeEventQCloseEvent*事件覆盖; 私人: Ui::MainWindow*Ui; }; - endif//main窗口 cpp文件:

void主窗口::closeEventQCloseEvent*事件 { 事件->忽略; }
你什么意思是不工作:???我的意思是抛出标题中引用的错误你能发布MainWindow类吗?这里似乎没有声明closeEvent。如何在头文件中声明closeEvent?QWidget::closeEvent由Qt声明。您必须自己在MainWindow类定义中声明MainWindow::closeEvent。这将覆盖Qt的定义,因为QWidget::closeEvent是一个虚拟函数。什么意思是不工作:???我的意思是抛出标题中引用的错误。是否可以发布MainWindow类?这里似乎没有声明closeEvent。如何在头文件中声明closeEvent?QWidget::closeEvent由Qt声明。您必须自己在MainWindow类定义中声明MainWindow::closeEvent。这将覆盖Qt的定义,因为QWidget::closeEvent是一个虚拟函数。