Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: SpeedyWizard от Сентябрь 10, 2010, 17:10



Название: Вызов основного окна из диалогового окна
Отправлено: SpeedyWizard от Сентябрь 10, 2010, 17:10
Приветствую. Я пишу программу, которая работает с БД. В программе сначала появляется диалоговое окно, в котором запрашиваются авторизационные данные (логин, пароль, база). Я хочу, чтобы после этого появлялось основное окно. Общая структура программы такова:
1) класс AuthDialog (authdialog.cpp) - диалоговое окно авторизации;
2) класс ClientWindow (clientwindow.cpp)- основное окно;
3) main.cpp - запускалка.

Мой ход действий таков:
1) делаю connect между кнопкой loginButton и методом AuthDialog::connectDb, где connectDb - метод, производящий подключение к БД;
2) в методе AuthDialog::connectDb я хочу сделать нечто вроде w.show(), где w - инстанс класса ClientWindow.

Вся проблема заключается в том, что я не знаю, как вызвать w.show(), если w продекларирован в main и доступа из класса AuthDialog у меня к нему нет. Подскажите, пожалуйста, как это можно сделать.


Название: Re: Вызов основного окна из диалогового окна
Отправлено: Denjs от Сентябрь 10, 2010, 17:51
void QWidget::show ()   - это слот. К нему можноп подключить сигнал.
Источник сигнала не знает кто и где (в принципе даже когда) будет получателем этого сигнла.

Объявили w в майне? ну отлично. Тут-же приконекте к нему сигнал от инстанса вашего AuthDialog.
 в AuthDialog::connectDb испустите ещё один сгнал - подключенный к show.


Название: Re: Вызов основного окна из диалогового окна
Отправлено: SpeedyWizard от Сентябрь 10, 2010, 18:10
Большое спасибо, буду пробовать.