0

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

    ...
}
4

1 に答える 1