この問題に遭遇するまで、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));
...
}