crossplatform.ru

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


  Ответ в Передача параметра
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ilyabvt Дата 23.6.2011, 22:33
 
Цитата
Подскажите пожалуйста мне надо передать текст из 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();
}
crazymonkey Дата 23.6.2011, 21:06
  Шлее 2008 страница 51 пример со счетчиком: пересылка данных по сигналам
по аналогии можно и вашу задачу сделать
maranath Дата 23.6.2011, 19:15
  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());
maint Дата 23.6.2011, 18:47
 
Цитата(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 Дата 23.6.2011, 17:29
 
Цитата(skmdeveloper @ 23.6.2011, 21:32) *
Сигналами/слотами не подходит?


Плохо их знаю пока не разобрался как :-) "Нам бы схемку аль чертеж..."
skmdeveloper Дата 23.6.2011, 15:32
  Сигналами/слотами не подходит?
maranath Дата 23.6.2011, 13: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 ничего не предается что делаю не так?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 0:04