Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Blue_a_p от Август 25, 2012, 17:45



Название: [Решено]Передать значение переменной из одной формы в другую
Отправлено: Blue_a_p от Август 25, 2012, 17:45
Собственно пробовал так не получается
Код:
    Bds *frm = new Bds();
    frm->iddo= id;
    frm->show();
подскажите или ссылку умную дайте хотя бы!  


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: Serr500 от Август 25, 2012, 18:25
Что значит "Не получается"? Должно работать.


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: Blue_a_p от Август 25, 2012, 18:48
Для функций работает а для переменных нет  ???
Вот это работает
Цитировать
frm->setWindowTitle(QString::fromLocal8Bit("Имя"));


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: kambala от Август 25, 2012, 19:48
приведи минимальный компилируемый код который работает не так как надо


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: andrew.k от Август 25, 2012, 20:03
уже обсуждалось 100500 раз.
http://www.prog.org.ru/index.php?topic=18028
http://www.prog.org.ru/index.php?topic=18376
http://www.prog.org.ru/index.php?topic=17583

Это не говоря уже о том, что нужно пользоваться поиском и в любой книге с этого начинают  >:(


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: Blue_a_p от Август 26, 2012, 19:22
приведи минимальный компилируемый код который работает не так как надо
Ну вот набросал  програмку для примера
Код:
#ifndef MAINWINDOK_H
#define MAINWINDOK_H

#include <QMainWindow>

#include "mainwindow.h"
namespace Ui {
class MainWindok;
}

class MainWindok : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindok(QWidget *parent = 0);
    ~MainWindok();
    QString dj;
    
private:
    Ui::MainWindok *ui;
};

#endif // MAINWINDOK_H

Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QString dj;
    
private:
    Ui::MainWindow *ui;
public slots:
    void Myg();
};

#endif // MAINWINDOW_H

Код:
#include "mainwindok.h"
#include "ui_mainwindok.h"

MainWindok::MainWindok(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindok)
{
    ui->setupUi(this);
    ui->textEdit->setText(dj); //В теории в Text edit должно записаться значение переменной dj, c text edit это для примера, на практике требуется проверять значение переменной и выполнять некоторые действия!
}

MainWindok::~MainWindok()
{
    delete ui;
}

Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mainwindok.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
      QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(Myg()));
}

void MainWindow::Myg()
{
    MainWindok *fmr = new  MainWindok(0);
    fmr->dj = "dirol";
          fmr->show();
}

MainWindow::~MainWindow()
{
    delete ui;
}

Это не говоря уже о том, что нужно пользоваться поиском и в любой книге с этого начинают  >:(
Поиском пользовался нашел как устроить взаимодействие между объектами разных, а как просто передать значение переменной из одной формы в другую?


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: andrew.k от Август 26, 2012, 20:00
Поиском пользовался нашел как устроить взаимодействие между объектами разных, а как просто передать значение переменной из одной формы в другую?
Все три темы по ссылкам выше по твоей проблеме. И там уже описано, как ее решить.
Ты бы хотя бы на их название посмотрел.


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: Serr500 от Август 26, 2012, 20:02
Код:
class MainWindok : public QMainWindow
{
    private :
        QString m_dj;
    public :
        explicit MainWindok(const QString& dj, QWidget *parent = NULL);
        QString dj() const { return m_dj; }
        void setDj(const QString& dj);
}

MainWindok::MainWindok(const QString& dj, QWidget *parent)
    : QMainWindow(parent),
      ui(new Ui::MainWindok)
{
    ui->setupUi(this);
    ui->textEdit->setText(m_dj);
}

void MainWindok::setDj(const QString& dj)
{
    m_dj = dj;
    ui->textEdit->setText(m_dj);
}

P.S. Почитайте книжку по основам C++.


Название: Re: Передать значение переменной из одной формы в другую
Отправлено: Blue_a_p от Август 27, 2012, 11:15
Спасибо  Serr500за помощь + помогла ссылка http://forum.vingrad.ru/forum/topic-318651.html
Конечное:
Код:
mainwindok.h

class MainWindok : public QMainWindow
{
    Q_OBJECT
    
private:
    Ui::MainWindok *ui;
    QString m_dj;
public:
    explicit MainWindok(QWidget *parent = NULL);
    ~MainWindok();
    QString dj() const { return m_dj; }
            void setDj(const QString& dj);

};

mainwindok.cpp

MainWindok::MainWindok(QWidget *parent)
    : QMainWindow(parent),
      ui(new Ui::MainWindok)
{
    ui->setupUi(this);
}

void MainWindok::setDj(const QString& dj)
{
    m_dj = dj;
    ui->textEdit->setText(m_dj);
}

mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
      QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(Myg()));
}

void MainWindow::Myg()
{
    MainWindok *fmr = new  MainWindok(0);
    QString t ="dsjfsdjl";
    fmr->setDj(t);
       fmr->show();
}