我一直在PySide [source]实施Conways生活游戏。到目前为止它一直很好,直到在某些条件下,我还没有想到,我用来显示网格(由QGraphicsScene上的几个QGraphicsRectItems组成)的QGraphicsView突然停止连续绘制。窗口的其余部分保持响应,游戏线程继续运行,并指示ui更新当前世代号。只有当窗口获得焦点时,graphicsView才会更新大约一秒钟,然后再次冻结。
我发现这种行为特别奇怪,因为我不会覆盖paintEvent,也根本不会调用repaint / update方法,但游戏线程的作用是根据每个RectItem的刷子颜色更新每个RectItem的刷子颜色。代。
关于可能导致这种情况的任何想法?
btw这是关于Kubuntu 14.04.3 / KWin 4.11.11 / Qt 4.8.6
答案 0 :(得分:1)
管理自己解决它!如果有人遇到同样的问题,我需要做的就是通过每一代调用qgraphicsscene的更新方法来安排更新(即在操作游戏线程的graphicRects之后)。
我认为奇怪的行为可能是试图保存cpu负载的结果,因为对于gui线程没有工作要做!