在我遇到这个问题之前,我没有将信号连接到 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));
...
}