Запустить объект QDialog из статической функции после открытия QMainWindow - PullRequest
1 голос
/ 27 января 2011

Я хотел бы открыть модальное диалоговое окно (для входа в систему) из статической функции после открытия объекта QMainWindow.

class DialogLog : public QDialog {
    DialogLog(QWidget * parent) : QDialog(parent) {
        //some code
        exec();
    }
};

class LogHandler {
    static bool log(QWidget * parent) {
        DialogLog dl(parent);
        //some code
    }
};

class WinMain : public QMainWindow {}

main(..) {
    QApplication app(..);

    WinMain fen;
    fen.show;

    app.exec();
};

РЕДАКТИРОВАТЬ: Как я могу запустить LogHandler :: log () после/ одновременно WinMain?

1 Ответ

2 голосов
/ 27 января 2011

Возможно, было бы лучшее решение, но вот что вы могли бы сделать: используйте таймер одиночной съемки , который немедленно сработает (т.е. как только будет запущен насос событий).

Таймер вызовет слот, например, вашего WinMain класса:

void main(..) {
    QApplication app(..);

    WinMain fen;
    fen.show;

    QTimer::singleShot(0, &fen, SLOT(login()));
    app.exec();
};

В слоте login() на WinMain вы бы позвонили на LogHandler::log():

void WinMain::login() {
   if (!LogHandler::log(this))
      qApp->quit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...