Qt - 如何绘制平铺像素图?

时间:2014-07-01 02:35:56

标签: c++ qt

我想在QTreeWidgetItem中绘制评级星星像这样: Final shape

如何做到这一点,考虑到我想在不使用任何图像的情况下这样做,只使用QPixmap和QPolygon。

不要关心阴影,只想使用一个QPixmap绘制多颗恒星的形状。

这是最终的形状:

enter image description here

1 个答案:

答案 0 :(得分:1)

由于你在评论中说过你已经知道如何绘制一颗恒星,所以绘制多颗恒星非常简单:创建一个比单颗星宽5倍的QPixmap,并多次执行draw-a-star程序一个循环,根据需要在不同的x偏移处将该星形绘制到像素图中。

要在树窗口小部件中显示星标:

创建一个包含五个不同QPixmaps的数组,大小相同:第一个有一个星星和四个空格,第二个有两个星星和三个空格,依此类推,最后一个是五颗星没有空格。

然后,对于每个QTreeWidgetItems,调用setIcon(0,pixmapArray [numStars-1])为该项设置适当的QPixmap。

注意:您可能还需要在QTreeWidget上调用setIconSize()以确保您的pixmaps以您想要的大小显示(而不是例如自动缩小以适应更小的空间)