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 ничего не предается что делаю не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
skmdeveloper
  опции профиля:
сообщение 23.6.2011, 15:32
Сообщение #2


Студент
*

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

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




Репутация:   0  


Сигналами/слотами не подходит?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maranath
  опции профиля:
сообщение 23.6.2011, 17:29
Сообщение #3


Новичок


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

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




Репутация:   0  


Цитата(skmdeveloper @ 23.6.2011, 21:32) *
Сигналами/слотами не подходит?


Плохо их знаю пока не разобрался как :-) "Нам бы схемку аль чертеж..."
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maint
  опции профиля:
сообщение 23.6.2011, 18:47
Сообщение #4


Участник
**

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

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




Репутация:   2  


Цитата(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, 19:15
Сообщение #5


Новичок


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

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




Репутация:   0  


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
  опции профиля:
сообщение 23.6.2011, 21:06
Сообщение #6


Студент
*

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

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




Репутация:   0  


Шлее 2008 страница 51 пример со счетчиком: пересылка данных по сигналам
по аналогии можно и вашу задачу сделать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 23.6.2011, 22:33
Сообщение #7


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

Группа: Участник
Сообщений: 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 Текстовая версия Сейчас: 29.3.2024, 2:08