Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 打开QMainWindow后,从静态函数运行QDialog对象_C++_Qt - Fatal编程技术网

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

C++ 打开QMainWindow后,从静态函数运行QDialog对象,c++,qt,C++,Qt,我想在QMainWindow对象打开后从静态函数打开一个模式对话框(登录) class DialogLog : public QDialog { DialogLog(QWidget * parent) : QDialog(parent) { //some code exec(); } }; class LogHandler { static bool log(QWidget * parent) { DialogLog dl

我想在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()?

可能有更好的解决方案,但您可以做的是:使用一个将立即触发(即,一旦事件泵循环)的脚本

计时器将调用一个插槽,例如,您的
WinMain
类:

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

    WinMain fen;
    fen.show;

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


那么问题是什么呢?
void WinMain::login() {
   if (!LogHandler::log(this))
      qApp->quit();
}