我在我的項目中使用C++和Qt,而我的問題是QObject :: connect函數沒有將信號連接到插槽。我有以下類:QObject ::連接沒有連接信號到插槽
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插槽。除此之外, 接收器(信號(snippetAdded()))給我1但接收器(SIGNAL(variableAdded()))給我0,我使用命令qmake -project; qmake並使其完全編譯。 我錯過了什麼?
您是否嘗試過點擊Build - >運行qmake(在Qt Creator中)並清理,重建您的項目? 你的輸出窗口顯示什麼? –
是的,試過了,但沒有解決。我用插槽中的qDebug()打印,但它們不被信號調用。 –
我剛剛使用你的代碼和連接工作正常。必須有其他事情正在進行。你以後是否可能重新初始化'addDegiskenDialog'? –