关于Qt demos中俄罗斯方块的问题!
为什么在Qt的俄罗斯方块例子中可以在paintevent外调用QPainter中进行绘图,例如: void TetrixBoard::showNextPiece(int width, int height)、void TetrixBoard::drawPauseScreen、void TetrixBoard::drawSquare等函数。(急需搞懂)
[解决办法]
drawSquare 被 paintEvent 调用
showNextPiece 是画在 一个 QPixmap 上的。
有什么问题吗?
较老版本的 Qt 允许 paintEvent 外绘图。但新版本的不可以了。因为那个不好的设计。
在 paintEvent 外你可以画在一个位图里,然后在 paintEvent 里画这个位图就可以了。
[解决办法]