2013-05-20 69 views
0

我有文件programm.cpp控制所有连接我的页面,但是当我想的programm.cpp功能之一从另一个类连接到其他按钮我给了一个错误连接插槽错误

这是代码:

QObject::connect(LoginPage->Buttons->button(QDialogButtonBox::Ok),SIGNAL(clicked()),this,SLOT(check_user())); 

,这是错误:

/home/alireza/Documents/qt/ALIREZA/programm.cpp:19:错误:调用“QObject的不匹配函数::连接( QPushButton *,const char *,programm * const,const char *)'

&也这是函数的声明完全说:

void programm::check_user() 
{ 
/*QString user = LoginPage->EditPassWord->displayText(); 
QString password = LoginPage->ComboUsername->currentText(); 

QSqlQuery myquery("SELECT Username FROM TeacherUsers"); 
while(myquery.next()) 
{ 
    QString Username = MyDB->query->value(0).toString(); 
    QString pass = MyDB->query->value(1).toString(); 
    qDebug()<<Username << " " << pass ; 
    //if (Username == user) 
}*/ 
} 

programm.h:

#ifndef PROGRAMM_H 
#define PROGRAMM_H 
#include "login.h" 
#include "mainwindow.h" 
#include "nazem.h" 
#include "database.h" 
#include <QtGui> 
#include <QtCore> 
#include <QObject> 

class programm 
{ 
Q_OBJECT 
public: 
    programm(); 
    Login *LoginPage; 
    MainWindow *MainWindowPage; 
    nazem *nazm; 
    database *MyDB; 
public slots : 
    void check_user(); 
}; 

#endif // PROGRAMM_H 
+1

是'programm :: check_user()'一个插槽吗? 'programm'是从'QObject'派生的吗?你在'programm'类声明中包含了'Q_OBJECT'宏吗? – cmannett85

+0

@ cmannett85:是的,它是一个插槽(公共插槽),我也包括QObject。 –

+0

错误信息告诉我们,否则,请发布您的'programm'标题。 – cmannett85

回答

2

就像我在评论说......你还没有从QObject和派生你还没有包含Q_OBJECT宏。

阅读docs

+0

但Qt Creator中不识别Q_OBJCET,我做到这一点的自QObject派生现在我给'的QObject ::连接:没有这样的插槽的QObject :: check_user()' –

+0

@alirezasanaee更新与新的头你的问题。 – cmannett85

+0

我发现你说什么和阅读文档点燃,但现在我给一些更多的错误:**/home/alireza/Documents/qt/ALIREZA/programm.h:13:错误:未定义引用'vtable for programm'* * –