报错内容
不加Q_OBJECT 程序能跑 但是 connect好像不能执行
加拉之后 构造函数那里报错拉
代码
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QDialog> #include<QMainWindow> #include <QTabWidget> #include <QMenuBar> #include <iostream> #include<QFileDialog> #include<QString> using namespace std ; class MainWindow: public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent=0); public: QMenu * m_menufile; QAction *m_open; QAction *m_save; public: void CreateActions(); public slots: void RspActOpen(); void RspActSave(); }; #endif // MAINWINDOW_H
#include "mainwindow.h" MainWindow::MainWindow(QWidget *parent):QMainWindow(parent) { CreateActions(); m_menufile= menuBar()->addMenu("flie"); m_menufile->addAction(m_open); m_menufile->addAction(m_save); } void MainWindow::CreateActions() { m_open = new QAction("open",this); connect(m_open,SIGNAL(triggered()),this,SLOT(RspActOpen())); m_save = new QAction("save",this); connect(m_save,SIGNAL(triggered()),this,SLOT(RspActSave())); } void MainWindow::RspActOpen() { QFileDialog *fileDialog = new QFileDialog(this); fileDialog->setGeometry(10,30,300,200); fileDialog->show(); } void MainWindow::RspActSave() { cout<<"OK"<<endl; }
解决方案
40
这个错误常见于刚刚创建一系列有继承关系的class的时候,这个时候很容易忘了给base class的virtual function加上函数实现。
解决办法:给基类的virtual函数加上本来就应该有的function body。当含有虚函数的类未将析构函数声明为virtual时也会出现这个链接错误。
解决办法:给基类的virtual函数加上本来就应该有的function body。当含有虚函数的类未将析构函数声明为virtual时也会出现这个链接错误。