Я пытаюсь сделать программу, которая принимает сигнал от одного класса и с активацией этого сигнала. Я хочу активировать слот второго класса.Исправить сигнал между двумя классами в Qt
В моем случае первый класс является классом 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);
}
Второй класс это класс 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);
}
Сигнал emited из functionDatabaseOpen функции():
if (sqlDatabase.open())
{
emit signalForShowMessageInStatusBar("true");
}
else
{
emit signalForShowMessageInStatusBar("false");
}
Я сделал все настройки в базе данных, но я не копировать сюда из-за пространство.
Я попытался установить соединение внутри main.cpp, но, похоже, он работает доцент.
QObject::connect(mw, SIGNAL(signalForShowMessageInStatusBar(QString)), w, SLOT(slotForStatusBarMessage(QString)));
Я не могу сделать этот сигнал/слот между классами работать. Можете ли вы мне помочь.
Если у вас есть вопросы о коде, пожалуйста, спрашивайте. Извините за плохой английский, я не являюсь носителем английского языка.
Большое спасибо за помощь.
Какие ошибки компилятор дает? Где вы создаете экземпляр обоих классов? – alexisdm
Если код компилируется, обратите внимание на вывод stdout или debug - Qt будет печатать материал, если ему нужно вызвать сигнал и не может найти подключенный слот. – Eugene
@alexisdm это результат: Начало/home/kudic/untitled136-build-desktop/untitled136 ... /home/kudic/untitled136-build-desktop/untitled136 завершен с кодом 0 – depecheSoul