我在我的项目中使用C++和Qt,我的问题是QObject::connect函数不能将信号连接到槽。我有以下类:
class AddCommentDialog : public QDialog
{
Q_OBJECT
public:
...some functions
signals:
void snippetAdded();
private slots:
void on_buttonEkle_clicked();
private:
Ui::AddCommentDialog *ui;
QString snippet;
};
我的主窗口的一部分:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void commentAddedSlot();
void variableAddedSlot();
...
private:
AddCommentDialog *addCommentDialog;
...
};
最后一个对话框;
class AddDegiskenDialog : public QDialog
{
Q_OBJECT
public:
...
signals:
void variableAdded();
private slots:
void on_buttonEkle_clicked();
private:
Ui::AddDegiskenDialog *ui;
...
};
在主窗口构造函数中,我连接信号和槽:
addCommentDialog=new AddCommentDialog();
addDegiskenDialog=new AddDegiskenDialog();
connect(addDegiskenDialog, SIGNAL(variableAdded()), this, SLOT(variableAddedSlot()));
connect(addCommentDialog, SIGNAL(snippetAdded()), this, SLOT(commentAddedSlot()));
问题在于我的commentAddedSlot成功连接到了它的信号,但是commentAddedSlot失败了。 有Q_OBJECT宏,没有诸如没有x插槽之类的警告。除此之外, receivers(SIGNAL(snippetAdded()))给我1,但receivers(SIGNAL(variableAdded()))给我0,我使用命令qmake -project; qmake和make进行完全编译。 我错过了什么吗?
addDegiskenDialog
? - Dave Mateer