Помогите реализовать передачу данных из формы в форму....Уже второй день мучаюсь..перечитал множество тем по этому поводу, но познание так и не наступило. Вот мои исходники.
main.cpp
C++ (Qt)
#include <QApplication>
#include "first_w.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
FinddDialog *dialog = new FinddDialog;
app.setActiveWindow(dialog);
dialog->show();
return app.exec();
}
first_w.h
C++ (Qt)
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include <qdialog.h>
class QPushButton;
class QLabel;
class FinddDialog : public QDialog
{
Q_OBJECT
public:
FinddDialog(QWidget *parent = 0);
signals:
private slots:
void BtnClicked();
void SET(QString AA);
private:
QPushButton *WButton;
QLabel *Label;
};
#endif
first_w.cpp
C++ (Qt)
#include <QtGui>
#include "first_w.h"
#include "newwin.h"
FinddDialog::FinddDialog(QWidget *parent) : QDialog(parent)
{
FinddDialog::setWindowTitle("Window_1"); // setCaption(tr("Window_1"));
Label = new QLabel(tr("Null"));
WButton = new QPushButton(tr("New window"),this);
connect(WButton, SIGNAL(clicked()), this, SLOT(BtnClicked()));
QVBoxLayout *mainLay = new QVBoxLayout(this);
mainLay->addWidget(Label);
mainLay->addWidget(WButton);
setLayout(mainLay);
}
void FinddDialog::BtnClicked()
{
newwindow *windowSix = new newwindow(this);
connect(windowSix->Button, SIGNAL(pressed()), this, SLOT(SET(newwindow->LineEdit->text())));
windowSix->show();
}
void FinddDialog::SET(QString AA)
{
Label->setText(AA);
}
newwin.h
C++ (Qt)
#ifndef NEWWIN_H
#define NEWWIN_H
#include <QtGui>
class QLineEdit;
class QPushButton;
class newwindow : public QDialog
{
Q_OBJECT
public:
newwindow(QWidget *parent = 0);
QPushButton *Button;
QLineEdit *LineEdit;
private slots:
private:
};
#endif // NEWWIN_H
newwin.cpp
C++ (Qt)
#include <QtGui>
#include "newwin.h"
newwindow::newwindow(QWidget *parent) : QDialog(parent)
{
setWindowTitle("Window_2");
LineEdit = new QLineEdit();
LineEdit->setText("OK");
Button = new QPushButton();
connect(Button , SIGNAL(clicked()), this , SLOT(close()));
Button->setText( LineEdit->text());
QVBoxLayout *winLay = new QVBoxLayout(this);
winLay->addWidget(LineEdit);
winLay->addWidget(Button);
setLayout(winLay);
}
Вобщем при вызове newwin ругается на = Object::connect: No such slot FinddDialog::SET(newwindow->LineEdit->text()) in first_w.cpp:23 .
Вроде Виджеты в public считаются плохим тоном. Применительно к моему коду, можно несколько примеров передачи данных из LineEdit окнв 2 в Label окна 1; Как это правильно написать вообще?
ЗЫ: Извиняюсь за говнокодерство.