Russian Qt Forum
Ноябрь 23, 2024, 09:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не выходит передача данных из формы в форму  (Прочитано 2949 раз)
ADA
Гость
« : Июль 08, 2011, 15:04 »

Помогите реализовать передачу данных из формы в форму....Уже второй день мучаюсь..перечитал множество тем по этому поводу, но познание так и не наступило. Вот мои исходники.
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; Как это правильно написать вообще? Непонимающий

ЗЫ: Извиняюсь за говнокодерство. Обеспокоенный
Записан
twp
Гость
« Ответ #1 : Июль 08, 2011, 15:42 »

так нельзя делать
Код:
connect(windowSix->Button, SIGNAL(pressed()), this, SLOT(SET(newwindow->LineEdit->text())));
вначале стоит почитать по сигналы/слоты, материалов по этой теме достаточно в сети
Записан
ADA
Гость
« Ответ #2 : Июль 08, 2011, 16:51 »

так нельзя делать
Да...я это сделал, чтобы попытаться передать смысл того, что я хочу получить, а то что оно не работает, то понятно и видно из ругни, которая выдает QT. Но если кому не сложно, можете переписать мой код, так , чтобы работало как надо?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Июль 08, 2011, 17:37 »

ТС, читай лучше книжки и см примеры из Qt4.
Документации на эту тему полным полно.
Записан

ArchLinux x86_64 / Win10 64 bit
ADA
Гость
« Ответ #4 : Июль 08, 2011, 19:54 »

ТС, читай лучше книжки и см примеры из Qt4.
Ушел читать книжки ...  Плачущий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.147 секунд. Запросов: 22.