У меня есть две вкладки (QTabWidget). На первой вкладке есть опции, когда они отмечены, говорят мне, какой текст отправить на вторую вкладку (в поле QTextEdit). Затем у меня есть QPushButton для генерации текста. У меня проблема заключается в том, чтобы отправить этот текст на вторую вкладку.
FenPrincipale::FenPrincipale(QWidget *parent) : QWidget(parent)
{
ongletGenerateur = new OngletGenerateur(this);
ongletTexte = new OngletTexte(this);
tabWidget = new QTabWidget;
tabWidget->addTab(ongletGenerateur, "Options de génération");
tabWidget->addTab(ongletTexte, "Texte");
m_generer = new QPushButton("&Générer !");
.
. layout
.
connect(m_generer, &QPushButton::clicked, ongletGenerateur, &OngletGenerateur::genererCode);
}
void OngletGenerateur::genererCode()
{
.
.
.
texte += "some text";
??? how do I send the texte to the second tab (ongletTexte) ???
}
OngletTexte::OngletTexte(QWidget *parent) : QWidget(parent)
{
m_texteGenere = new QTextEdit;
m_texteGenere->setPlainText("Bla, bla, bla"):
.
.
.
}
Спасибо!
Просто создайте сигнал в своем классе OngletGenerateur
с одним параметром (ваша строка). Испустите его из вашего метода. Создайте слот в OngletTexte
. Затем соедините сигнал и слот вместе в FenPrincipale
.
class OngletGenerateur
{
...
signals:
textGenerated(QString);
};
class OngletTexte
{
...
public slots:
void append(QString text)
{
m_texteGenere->append(text);
}
};
FenPrincipale::FenPrincipale(QWidget *parent) : QWidget(parent)
{
connect(ongletGenerateur, &OngletGenerateur::textGenerated, ongletText, &OngletTexte::append);
}