ฉันไม่มีปัญหาในการเชื่อมต่อสัญญาณเข้ากับช่องใน Qt จนกว่าฉันจะพบปัญหานี้ ฉันไม่สามารถเชื่อมต่อกับสล็อตได้เมื่อฉันคลิกที่ปุ่มเครื่องมือ (btnNR)
สล็อตเรียกวิดเจ็ตอื่นให้แสดง ฉันค่อนข้างมั่นใจว่าสัญญาณการเชื่อมต่อมีรูปแบบที่ถูกต้อง อย่างไรก็ตาม สล็อตจะไม่ถูกเรียก ใครสามารถช่วยได้บ้าง?
SetMalDlg.h:
#pragma once
#include <QDialog>
#include <QtGui>
class SetMalDlgInjRem;
class SetMalDlg : public QDialog
{
Q_OBJECT
public:
SetMalDlg(void);
~SetMalDlg(void);
SetMalInjRem *malInjRem;
public slots:
void slot_SetMalDlgInjRem();
public:
void createLayout();
...
};
SetMalDlg.cpp:
#include "SetMalDlg.h"
#include "SetMalDlgInjRem.h"
SetMalDlg::SetMalDlg(void)
{
malInjRem = new SetMalDlgInjRem;
createLayout();
connect(btnNR, SIGNAL(clicked()), this, SLOT(slot_SetMalDlgInjRem()));
setWindowModality(Qt::WindowModal);
}
SetMalDlg::~SetMalDlg(void)
{
disconnect(btnNR, SIGNAL(clicked()), this, SLOT(slot_SetMalDlgInjRem()));
}
void SetMalDlg::createLayout()
{
...
// create btnNR here
...
}
void SetMalDlg::slot_SetMalDlgInjRem()
{
malInjRem->show();
}
SetMalDlgInjRem.h:
#pragma once
#include <QDialog>
#include <QtGui>
class SetMalDlgInjRem : public QDialog
{
Q_OBJECT
public:
SetMalDlgInjRem(void);
~SetMalDlgInjRem(void);
public:
void createLayout();
...
};
SetMalDlgInjRem.cpp:
#include "SetMalDlgInjRem.h"
#include <QtGui>
SetMalDlgInjRem::SetMalDlgInjRem(void)
{
createLayout();
setWindowModality(Qt::WindowModal);
}
SetMalDlgInjRem::~SetMalDlgInjRem(void)
{
}
void SetMalDlgInjRem::createLayout()
{
this->resize(1033, 452);
labelMalInjRem = new QLabel(this);
labelMalInjRem->setText("Text");
labelMalInjRem->setGeometry(QRect(10, 10, 301, 31));
...
}
slot_SetMalDlgInjRem()
เป็นช่องสาธารณะและรวมQ_OBJECT
ไว้ด้วย - person Wallace   schedule 14.11.2013