![](/img/trans.png)
[英]QObject::connect cant connect signal to a slot of *this* object
[英]QObject::connect not connecting signal to slot
我在我的項目中使用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;
...
};
Ant最后一個對話框;
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()));
關鍵是我的commentsAdded已成功連接到它的信號,但是commentsAddedSlot失敗了。 有Q_OBJECT宏,沒有關於沒有x槽的警告。 除此之外,接收器(SIGNAL(snippetAdded()))給我1但接收器(SIGNAL(variableAdded()))給我0,我使用命令qmake -project; qmake和make to complete compile。 我錯過了什么?
快速查看代碼不會給您帶來什么問題。
但是,這里有一些時刻:
你可以控制connect
功能的結果,所以(從官方文檔)
如果成功將信號連接到插槽,則該函數返回true。 如果它無法創建連接,它將返回false,例如,如果QObject無法驗證是否存在信號或方法,或者它們的簽名不兼容。
檢查對象(對話框)是否創建良好,指針不等於NULL
。
ui_*
, moc_*
。 然后重新編譯它。 祝好運! 並且,請給我們反饋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.