Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача параметра
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
maranath
Подскажите пожалуйста мне надо передать текст из 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 ничего не предается что делаю не так?
skmdeveloper
Сигналами/слотами не подходит?
maranath
Цитата(skmdeveloper @ 23.6.2011, 21:32) *
Сигналами/слотами не подходит?


Плохо их знаю пока не разобрался как :-) "Нам бы схемку аль чертеж..."
maint
Цитата(maranath @ 23.6.2011, 19:40) *
Подскажите пожалуйста мне надо передать текст из 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 ничего не предается что делаю не так?

попробуй так :
spu->textLine = ui->lineEdit->text().toAscii();

вместо to Ascii может быть много чего toLocal8Bit, toStdString, toItf8. Вообще text() нефига не QString
maranath
SP_users.h:

...
SP_users(QWidget *parent, const QString &text);
...
SP_users.cpp:

SP_users::SP_users(QWidget *parent, const QString &text) : QMainWindow(parent),
ui(new Ui::SP_users), textLine(text)
{
ui->setupUi(this);
ui->lineEdit->setText(textLine); // если переменная textLine больше нигде не используется, то можно text присваивать прямо сюда
...
}

mainWindow.cpp:

SP_users *spu = new SP_users(this, ui->lineEdit->text());
crazymonkey
Шлее 2008 страница 51 пример со счетчиком: пересылка данных по сигналам
по аналогии можно и вашу задачу сделать
ilyabvt
Цитата
Подскажите пожалуйста мне надо передать текст из 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();
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.