gpt4 book ai didi

c++ - Qt: mainWindow->show();不显示主窗口

转载 作者:搜寻专家 更新时间:2023-10-31 01:20:51 28 4
gpt4 key购买 nike

在下面的代码中,我创建了一个窗口,调用了 window.show(),但是直到 window->iterateSolution() 之后窗 Eloquent 显示出来叫做。几乎就好像,app.exec() 是显示窗口的函数。我是 Qt 的新手,所以我不知道发生了什么。

#include <QtGui/QApplication>
#include <mainWindow.h>
#include <Cube.h>

mainWindow * newWindow;

int main(int argc, char *argv[]) {
// initialize resources, if needed
// Q_INIT_RESOURCE(resfile);

QApplication app(argc, argv);
newWindow = new mainWindow;
newWindow->show();

QString initialState = "YWOBYYBYYGRRGRRBWWYOOYGGRGGBBGYOOYOOWRRBBRBBWGOOGWWRWW";

/* Construct cube, set state, and solve */
Cube * cube = new Cube(initialState);
QString solution = cube->solve();
delete cube;
newWindow->iterateSolution(solution);

// create and show your widgets here

return app.exec();
}

最佳答案

这正是正在发生的事情。

从技术上讲,QMainWindow::show() 不会使窗口可见,它只是在窗口中设置一个标志,Qt 将在事件循环的下一次迭代中使其可见。

此外,直接来自 Qt 关于 QApplication::exec() 的文档:

It is necessary to call this function to start event handling. The main event loop receives events from the window system and dispatches these to the application widgets.

Generally, no user interaction can take place before calling exec().

关于c++ - Qt: mainWindow->show();不显示主窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350624/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com