尝试按照《Qt5开发及实例》运行鼠标事件程序。报错。
moc_mainwindow.cpp:-1: error: undefined reference to `MainWindow::mouseDoubleClickEvent(QMouseEvent*)'
中文提示:找不到moc_mainwindows.cpp文件
产生该问题的根本原因是:
在mainwindow.h文件中声明了 void mouseDoubleClickEvent(QMouseEvent *e);
但在对应的 mainwindow.cpp文件中并没有做对应的实现。
因此,应当在mainwindows.cpp文件中 做对应的实现,哪怕函数体内部啥也不写
void MainWindow::mouseDoubleClickEvent(QMouseEvent *e){}
另外,关于为什么没有对QMouseEvent *e进行实例化,像mousePressEvent ()方法也能够实现相应的操作:因为在父类中已经对这些方法进行了实现,在这里只是对它进行一个override,父类中会自动调用override的这些方法,并传入参数。