Название: Однооконный интерфейс Отправлено: qter от Ноябрь 03, 2010, 11:08 Привет всем Qt-рам.
Столкнулся со следующей проблемой: Имеется класс MainWindow (описан в mainwindow.h). в mainwindow.cpp слоты: showStartWindow(), showProcessWindow(). в main.cpp - MainWindow mw; Далее есть классы StartWindow и ProcessWindow. Внутри StartWindow: Код: connect(startButton, SIGNAL(clicked()), this, SLOT(errorHandler())); Цитировать errorHandler() { /*...*/ MainWindow::showProcessWindow(); } Естественно, это не работает, т.к. нет экземпляра класса MainWindow внутри StartWindow. Как можно использовать тот экземпляр, созданный в main.cpp (mw) ? Или есть другое решение? (Интерфейс однооконный, создавать каждый раз новый MainWindow - вроде не айс). Простите за сбивчивость, если нужно что-то пояснить -- я с радостью. Название: Re: Однооконный интерфейс Отправлено: Пантер от Ноябрь 03, 2010, 11:12 connect (startWindow, SIGNAL (someSignal ()), mw, SLOT (showProcessWindow ()));
Название: Re: Однооконный интерфейс Отправлено: p166 от Ноябрь 03, 2010, 11:14 main.cpp << #define EXTERN
Название: Re: Однооконный интерфейс Отправлено: qter от Ноябрь 03, 2010, 11:36 connect (startWindow, SIGNAL (someSignal ()), mw, SLOT (showProcessWindow ())); Спасибо за ответ. Пробую так внутри mainwindow: Цитировать connect(startWindow, SIGNAL(destroyed()), this, SLOT(showProcessWindow())); Соответственно в startwindow пишу:Цитировать this->destroy(); Событие не отлавливается. Почему? Название: Re: Однооконный интерфейс Отправлено: qter от Ноябрь 03, 2010, 12:07 Решил ненавистную проблему.
Надо было так: Код: this->destroyed(); Название: Re: Однооконный интерфейс Отправлено: Пантер от Ноябрь 03, 2010, 12:21 1. this->destroyed(); не нужно.
2. У диалогов есть вот такие сигналы void accepted () void finished ( int result ) void rejected () |