2

我正在用 qt/opengl 编写俄罗斯方块游戏。

游戏部分是事件驱动的(Game类,它是一个QGLWidget),另一部分是在一个QThread(GameLogic类)中。当我尝试将此小部件放在带有“菜单”小部件的父小部件中时,出现了我的问题。即使我从游戏小部件paintGL() 方法向父小部件发送信号以刷新自身(父小部件),也没有任何反应,并且我的应用程序看起来像是被冻结了。

虽然当我尝试 resize() 而不是 repaint() 时,父小部件会自行调整大小(我猜也会刷新),我们可以看到游戏已经走了多远。

所以基本上我的游戏小部件和线程工作正常,但我没有设法要求父小部件简单地更新自身(如果是问题的话)。我已经尝试过 update()、repaint(),它们都QCoreApplication::processEvents()使用 QueuedConnection 和 DirectConnection 进行连接。我收到了一堆“递归重绘”错误消息,尽管父级似乎没有更新。

4

0 回答 0