crossplatform.ru

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

7 страниц V  « < 5 6 7  
Ответить в данную темуНачать новую тему
> Передача данных от одной формы другой
Litkevich Yuriy
  опции профиля:
сообщение 12.4.2010, 20:36
Сообщение #61


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(PunX @ 12.4.2010, 23:58) *
вот и получается что создаю 2 объекта.
а почему это вдруг так получается, для создания объекта нужен один конструктор, а какой из нескольких имеющихся выбрать тебе решать. Собственно их и делают несколько (перегружают), чтобы в разных ситуациях использовать. В одной ситуации нужен один, а в другой ситуации - другой




Цитата(PunX @ 13.4.2010, 0:28) *
mainwindow.h:23: warning: 'MainWindow::ui' will be initialized after
подобное сообщение компилятор пишет, для случая, когда ты используешь список инициализации:
Цитата
MainWindow::MainWindow(QString db_l, QString db_n, QWidget *parent ) :
QMainWindow(parent),
ui(new Ui::MainWindow), //
db_login( db_l ), // идёт вторым
db_name( db_n ) // идёт третим
В этом списке последовательность членов класса должна совпадать с последовательностью их объявления:
Цитата
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow::MainWindow( QString db_l, QString db_n, QWidget *parent = 0 );

private:
Ui::MainWindow *ui;
...
QString db_name; //идёт вторым
...
QString db_login; // идёт третим

};
как видишь тут последовательность отличается, а должна совпадать. Переставь либо в заголовочнике либо в списке инициализации. И всё будет путём
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PunX
  опции профиля:
сообщение 12.4.2010, 20:45
Сообщение #62


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 12.4.2009
Из: Димитровград
Пользователь №: 676

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




Репутация:   0  


Спасибо большое за "разжёвывание" матерьяла и за терпение!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.4.2010, 20:49
Сообщение #63


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


я предлагаю тему переместить из Qt в технику программирования, т.к. тут вопросы только по С/С++
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
danya
  опции профиля:
сообщение 1.11.2010, 23:34
Сообщение #64


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 22.3.2010, 11:38) *
обычно данные из диалоговых окон передаются в главное, по закрытию диалогового окна.
Для этого в диалоговом окне предусматривают методы чтения данных.
Например, для чтения текста из LoginSysDialog::LineEditName, можно написать метод LoginSysDialog::name, тогда в главном окне после закрытия диалога просто вызываешь этот метод.
Вот у меня диалог ввода имени пользователя и пароля:
class DialogLogin : public QDialog, public Ui::DialogLogin
{
    Q_OBJECT
public:
    DialogLogin(QWidget* parent= 0);
    
    QString    login() const;
    QString    password() const;
};
Вот так используется в главном окне:
DialogLogin    loginDialog(this);

if (loginDialog.exec() == QDialog::Accepted)
{
    login=loginDialog.login();
    pswd=loginDialog.password();
}

можете поподробнее описать мне также необходимо передать значения из диалога в основную форму
в чем у меня ошибка?
Раскрывающийся текст
#ifndef NEWDOG_H
#define NEWDOG_H

#include <QDialog>

namespace Ui {
    class newdog;
}

class newdog : public QDialog
{
    Q_OBJECT

public:
    explicit newdog(QWidget *parent = 0);
    ~newdog();
    QString aname() const;


private:
    Ui::newdog *ui;

private slots:
    void on_buttonBox_accepted();
};

#endif // NEWDOG_H

#include "newdog.h"
#include "ui_newdog.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"

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


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

void newdog::on_buttonBox_accepted()
{

}

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "newdog.h"
#include "QDialog"

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

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

void MainWindow::on_pushButton_2_clicked()
{
    QString name;
    newdog form(this);

    if (form.exec() == QDialog::Accepted)
    {
        name=form.aname();
    }
    ui->label->setText(name);
}

void MainWindow::on_pushButton_2_clicked(bool checked)
{

}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

7 страниц V  « < 5 6 7
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.4.2024, 9:14