我有 2 个由 QT Creator 创建的表格。我使用 Signal & Slot 在这两种形式之间传输数据。但是我收不到任何数据。
这些是我申请中的两种形式
表格1.h
class Form1: public QDialog
{
...........
private slots:
void on_btnOK_clicked();
signals:
void SendId(int id);
};
Form1.cpp
#include "form2.h"
void Form1::on_btnOK_clicked()
{
emit SendId(2); //ID = 2
Form2 form2;
form2.setModal(true);
form2.exec();
}
表格2.h
class Form2 : public QDialog
{
...........
public slots:
void ReceiveId(int id);
private:
Form1* m_pForm1;
};
Form2.cpp
Form2::Form2(QWidget *parent) :
QDialog(parent),
ui(new Ui::Form2)
{
ui->setupUi(this);
m_pForm1 = new Form1(this);
// Connecting the signal we created in the Form1
// with the slot created in the Form2
QObject::connect(m_pForm1, SIGNAL(SendId(int)),
this, SLOT(ReceiveId(int)));
}
void Form2::ReceiveId(int id)
{
qDebug() << "Received id";
}
当我运行应用程序时,我没有看到消息"Received id"。我的申请错了吗?
你有什么想法?
谢谢!