crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

maranath
  опции профиля:
сообщение 23.6.2011, 13:40
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 11.6.2011
Пользователь №: 2735

Спасибо сказали: 0 раз(а)




Репутация:   0  


Подскажите пожалуйста мне надо передать текст из lineEdit одной формы в lineEdit другой делаю так

в SP_users.h в секции public пишу:

QString textLine;

в SP_users.cpp пишу

SP_users::SP_users(QWidget *parent) : QMainWindow(parent),
ui(new Ui::SP_users)

{
ui->setupUi(this);
ui->lineEdit->setText(textLine);

в mainWindow.cpp

SP_users *spu = new SP_users; //()
spu->textLine = ui->lineEdit->text();

ошибок нет но в textLine ничего не предается что делаю не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ilyabvt
  опции профиля:
сообщение 23.6.2011, 22:33
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


Цитата
Подскажите пожалуйста мне надо передать текст из lineEdit одной формы в lineEdit

Можно много способов придумать, например так:
Form1.h
#ifndef _FORM1_H
#define    _FORM1_H

#include "ui_Form1.h"

class Form1 : public QMainWindow {
    Q_OBJECT
public:
    Form1();
    virtual ~Form1();
    Ui::Form1 widget;
public slots:
    void copyTextToForm2();
signals:
    void textSend(QString text);
private:
    
};

#endif    /* _FORM1_H */

Form1.cpp
#include "Form1.h"

Form1::Form1() {
   widget.setupUi(this);
   connect(widget.pushButton, SIGNAL(clicked()), this, SLOT(copyTextToForm2()));
}

Form1::~Form1() {
}

void Form1::copyTextToForm2()
{
   emit textSend(widget.lineEdit->text());
}

main.cpp
#include <QtGui/QApplication>
#include "Form1.h"
#include "Form2.h"

int main(int argc, char *argv[]) {
   QApplication app(argc, argv);
   Form1 form1;
   Form2 form2;
   form1.show();
   form2.show();
   
   QObject::connect(&form1, SIGNAL(textSend(QString)), form2.widget.lineEdit, SLOT(setText(QString)));
   return app.exec();
}

т.е. при нажатии кнопки вызывается слот который посылает сигнал содержащий текст из lineEdit.

или вообще взять и запихнуть 2 формы в другой класс:
GlobalClass.h
#include "Form1.h"
#include "Form2.h"

#ifndef GLOBALCLASS_H
#define    GLOBALCLASS_H

class GlobalClass: public QObject {
    Q_OBJECT
public:
    Form1 form1;
    Form2 form2;
    GlobalClass();
    virtual ~GlobalClass();
public slots:
    void copyText();
private:

};

#endif    /* GLOBALCLASS_H */

GlobalClass.cpp
#include "GlobalClass.h"

GlobalClass::GlobalClass() {
   connect(form1.widget.pushButton, SIGNAL(clicked()), this, SLOT(copyText()));
}


GlobalClass::~GlobalClass() {
}

void GlobalClass::copyText()
{
   form2.widget.lineEdit->setText(form1.widget.lineEdit->text());
}

main.cpp
#include <QtGui/QApplication>
#include "GlobalClass.h"

int main(int argc, char *argv[]) {
   QApplication app(argc, argv);

   GlobalClass global;
   global.form1.show();
   global.form2.show();

   return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.5.2025, 19:01