Подскажите пожалуйста мне надо передать текст из 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();
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());
Шлее 2008 страница 51 пример со счетчиком: пересылка данных по сигналам
по аналогии можно и вашу задачу сделать
#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 */
#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());
}
#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();
}
#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 */
#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());
}
#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();
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)