あるクラスからシグナルを取得するプログラムを作成しようとしており、そのシグナルをアクティブにして、2 番目のクラスのスロットをアクティブにしたいと考えています。
私の場合、最初のクラスは mainWindow クラスで、このクラスは QMainWindow のサブクラスであり、このクラスでアクティブにしたいスロットです。
これは mainWindow.cpp です。
mainWindow::mainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::mainWindow)
{
ui->setupUi(this);
}
mainWindow::~mainWindow()
{
delete ui;
}
void mainWindow::slotForStatusBarMessage(QString string)
{
statusBar()->showMessage(string);
}
2 番目のクラスは mainWidget クラスで、QWidget のサブクラスです。
これは mainWidget.cpp です。
mainWidget::mainWidget(QWidget *parent) :
QWidget(parent)
{
buttonAddNewRecord=new QPushButton("Add new record", this);
layoutButton=new QHBoxLayout();
layoutButton->addWidget(buttonAddNewRecord);
layoutMain=new QVBoxLayout();
layoutMain->addLayout(layoutButton);
functionDatabaseOpen();
setLayout(layoutMain);
}
シグナルは functionDatabaseOpen() 関数から発行されます。
if (sqlDatabase.open())
{
emit signalForShowMessageInStatusBar("true");
}
else
{
emit signalForShowMessageInStatusBar("false");
}
データベースにすべての設定を行いましたが、スペースのためにここにコピーしませんでした。
main.cpp 内で接続しようとしましたが、うまくいかないようです。
QObject::connect(mw, SIGNAL(signalForShowMessageInStatusBar(QString)), w, SLOT(slotForStatusBarMessage(QString)));
クラス間のこのシグナル/スロット接続を機能させることができません。何か助けてくれませんか。
コードについて質問がある場合は、質問してください。英語が下手で申し訳ありませんが、私は英語のネイティブ スピーカーではありません。
ご助力ありがとうございます。