• 4886阅读
  • 1回复

Q_OBJECT使用问题 [复制链接]

上一主题 下一主题
离线zhangming99
 
只看楼主 倒序阅读 楼主  发表于: 2008-09-18
— 本帖被 XChinux 执行加亮操作(2008-09-20) —
在加入信号与槽以后,只要加入Q_OBJECT宏,就会出现如下错误:
mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall MainWindow::qt_property(int,int,class QVariant *)" (?qt_property@MainWindow@@UAE_NHHPAVQVariant@@@Z)
mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall MainWindow::qt_emit(int,struct QUObject *)" (?qt_emit@MainWindow@@UAE_NHPAUQUObject@@@Z)
mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall MainWindow::qt_invoke(int,struct QUObject *)" (?qt_invoke@MainWindow@@UAE_NHPAUQUObject@@@Z)
mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall MainWindow::qt_cast(char const *)" (?qt_cast@MainWindow@@UAEPAXPBD@Z)
mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual char const * __thiscall MainWindow::className(void)const " (?className@MainWindow@@UBEPBDXZ)
mainwindow.obj : error LNK2001: unresolved external symbol "public: static class QMetaObject * __cdecl MainWindow::staticMetaObject(void)" (?staticMetaObject@MainWindow@@SAPAVQMetaObject@@XZ)
Debug/TSRT.exe : fatal error LNK1120: 6 unresolved externals

就是说信号与槽怎么都连不上,我的QT版本是3.2.1
源代码如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

//#include<qpushbutton.h>
//#include<qfont.h>
//#include<qscrollview.h>
//#include<qmultilineedit.h>
//#include<qscrollview.h>
#include <qmainwindow.h>
#include <qstringlist.h>
//#include<qwidget.h>
//#include<qlineedit.h>
//#include<qstring.h>

class QAction;
class QPopupMenu;


class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
        MainWindow(QWidget *parent = 0, const char *name = 0);
protected:
    void closeEvent(QCloseEvent *event);
    void contextMenuEvent(QContextMenuEvent *event);
//      QWidget *main;
//      QPushButton *b1;
//      QPushButton *b2;
//      QPushButton *b3;
//      QPushButton *b4;
//      QPushButton *b5;
//        QMultiLineEdit *edit1;
public slots:
  //登陆
  void    Login();
  //注销
  void    Logout();
  //管理
  void    Management();
  //退出
  void quit();
  //拟定临时限速
  void PlanTSR();
  //执行临时限速
  void ExcuteTSR();
  //取消临时限速
  void CancelTSR();
  //查询操作记录
  void SearchOper();
  //查询报警记录
  void SearchAlarm();
  //系统帮助
  void Help();
  //关于
  void About();

private:
    void createActions();
    void createMenus();
    void createToolBars();
    void createStatusBar();

    QAction *loginAct;
    QAction *logoutAct;
    QAction *manageAct;
    QAction *quitAct;
    QAction *planAct;
    QAction *excuteAct;
    QAction *cancelAct;
    QAction *searchoperAct;
    QAction *searchalarmAct;
    QAction *aboutAct;

    QPopupMenu *systemMenu;

};

#endif

各位大侠帮忙看看吧,多谢了!
离线zhangming99
只看该作者 1楼 发表于: 2008-09-18
已经解决了,需要重新qmake,呵呵
快速回复
限100 字节
 
上一个 下一个