打开QMainWindow后,从静态函数运行QDialog对象

时间:2011-01-27 11:22:34

标签: c++ qt

我想在打开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();
};

编辑:如何在WinMain的同时/之后运行LogHandler :: log()?

1 个答案:

答案 0 :(得分:2)

可能有更好的解决方案,但您可以做的就是:使用即时拍摄的singleshot timer(即一旦事件泵将循环播放)。

计时器将调用例如您的WinMain类:

的插槽
void main(..) {
    QApplication app(..);

    WinMain fen;
    fen.show;

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

login()的{​​{1}}位置,您可以拨打WinMain

LogHandler::log()