Я, вероятно, отсутствует что-то настолько основное, что мне будет стыдно, как только вы укажете мне это, но сейчас я работаю над этим вопросом в течение почти 3 дней, поэтому я думаю, что пришло время помочь.QT connect Сигнал от QDialog с Главным окном
У меня есть QWizardProject на qt5, и для одной из этих страниц мне нужен QPushButton, который запускает новый диалог, где у меня есть QCheckbox (среди прочего). Сигналы из QCheckbox должны изменить QLineEdit на QWizardPage. Звучит достаточно просто, я просто не могу заставить его работать - вообще. Я пробовал так много разных версий (большинство из них не удалось построить). Самая последняя версия просто ничего не делает. Спасибо за любую помощь заранее!
main.h
#ifndef main_H
#define main_H
#include <QWizard>
#include <QtWidgets>
class QCheckBox;
class QLabel;
class QLineEdit;
class QRadioButton;
class OMVGguiWizard : public QWizard
{
Q_OBJECT
public:
enum { Page_Main1, Page_Main2, Page_Main3};
OMVGguiWizard(QWidget *parent = 0);
};
class Page_Main3 : public QWizardPage
{
Q_OBJECT;
public:
Mainpage_3(QWidget *parent = 0);
private slots:
void btnOptionsbuttonsClicked(QString mode);
private:
QPushButton *OptionsButton;
QLineEdit *receiver;
};
class FindDialog : public QDialog
{
Q_OBJECT
public:
FindDialog(QWidget *parent = 0);
private:
QCheckBox *checkbox;
QGridLayout *mainLayout;
};
#endif
main.cpp
Page_Main3::Page_Main3(QWidget *parent)
: QWizardPage(parent)
{
// ...
DensifyOptionsButton = new QPushButton(tr("Densify Settings"));
receiver = new QLineEdit(tr("empty"));
connect(OptionsButton, &QPushButton::clicked, [this]() { btnOptionsbuttonsClicked("field1"); });
// ...
}
void Page_Main3::btnOptionsbuttonsClicked(QString mode)
{
FindDialog *dialog = new FindDialog;
dialog->show();
}
void Page_Main3::checkboxClicked()
{
receiver->setText("test");
}
FindDialog::FindDialog(QWidget *parent)
: QDialog(parent)
{
checkbox = new QCheckBox(tr("Advanced Options"));
mainLayout = new QGridLayout;
mainLayout->addWidget(checkbox);
setLayout(mainLayout);
connect(checkbox, SIGNAL(clicked()), this, SLOT(Page_Main3::checkboxClicked()));
}
Просьба пояснить: что не работает? Кнопка не запускает диалог? Флажок не меняет текст? Что-то другое? – JKSH
Излучение/прием сигнала обратно к главному окну не работает. – madde