【发布时间】:2021-07-02 07:25:04
【问题描述】:
一旦玩家生命耗尽,我会尝试显示“游戏结束”。但是,它在游戏结束后永远不会显示。这是一些示例代码。
void Game::end()
{
QGraphicsTextItem *text = new QGraphicsTextItem("GameOver");
text->setPos(400, 500);
scene->addItem(text);
sleep(2);
QApplication::quit();
}
【问题讨论】:
-
尝试切换
text->setPos(400, 500);和scene->addItem(text);行的顺序。首先添加项目,然后更改其相对于您已添加到的场景的位置。 -
什么是
sleep(2);?它可能会阻塞 GUI 线程,因此您不会看到它已更新。 -
但是,游戏结束后它永远不会显示这不会是因为
QApplication::quit();记住绘图发生在你的函数返回之后.使用 QTimer::SingleShot 延迟退出 -
添加更多关于调用函数的代码。这将有助于贡献者更多地了解您的问题。
-
drecherjm,成功了。感谢您的帮助!
标签: qt qgraphicstextitem