LINUX.ORG.RU

Qt multiform


0

0

Подскажите пожалуйста самый простой способ реализации малти форм приложения.... Т.е. концепция примерно слеующая:
Тыкаем в княпочку на главной форме, вылетает вторая формочка где можно ввести какие-то параметры, затем по закрытию второй формы обработать данные введенные в ее поля методом из первой(главной) формы...

По большей части не совсем понятно как это сделать красиво...

★★★★★

Ответ на: комментарий от Ximen

А по закрытию формы просто ее «прятать» ? ) И создавать/удалять в конструкторах/деструкторах ? :)

Jetty ★★★★★
() автор топика
Ответ на: комментарий от Jetty

А по закрытию формы просто ее «прятать» ?

Зачем? Она сама закрывается. Но данные из неё вполне можно забрать после закрытия и потом уже делать с ними что угодно.

И создавать/удалять в конструкторах/деструкторах ?

Тем более не зачем. Мой пример я обычно леплю в обработку сигналов.

Ximen ★★★★
()
Ответ на: комментарий от alex_custov

лучше в стеке

Ну разница в части как пользовать данные из формы это без большой разницы. Смысл-то тот же.

Ximen ★★★★
()

сделать это можно множеством способов...
имха, лучше что бы обработка как можно меньше зависела от интерфейса, отсюда -
передавать в класс второго окна указатель на структуру, которую второе окно
заполняет и по закрытию вызывает слот из первого - обработчик.
при спрыгивании с Qt на что то другое либо просто измении интерфейса переписать
будет просто.

anonymous
()
Ответ на: комментарий от anonymous

[code=cpp]
class MyDialog : public QDialog {

public:
QString someText () const
{ return lineEdit->text ();}

private:
QLineEdit *lineEdit;
};
...............
void MainWindow::showDialog ()
{
MyDialog d (this);
if (d.exec ()) {
someFunction (d.someText ());
}
}
[code]
ИМХО, так лучше.

panter_dsd ★★★★
()
Ответ на: комментарий от panter_dsd
class MyDialog : public QDialog {

public:
QString someText () const
{ return lineEdit->text ();}

private:
QLineEdit *lineEdit;
};
...............
void MainWindow::showDialog ()
{
MyDialog d (this);
if (d.exec ()) {
someFunction (d.someText ());
  }
}

ИМХО, так лучше.

panter_dsd ★★★★
()
Ответ на: комментарий от alex_custov

Пасиба всем :) Я примерно так и думал :) Сложности собсно возникли с тем как это можно сделать в кутекреторе «просто».

Jetty ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.