我在QListWidget中有一个QListWidgetItem的列表(由于数量巨大,Hor滚动条在那里)。每个QListWidgetItem都包含一个QPixmap作为数据(缩小到某个随机值)。我的要求是当点击一个QPixmap时应该突出显示(刷宽为10的四舍五入)。我将每个QListWidgetItem委托给一个QItemDelegate。我在这里有几个问题。在QListWidget的QPixmap上绘画
如何在选择相应的QListWidgetItem时绘制QPixmap的圆角矩形?
当点击QPixmap(不在QListWidgetItem的其他部分)时,上述绘制事件应该会发生。由于QPixmaps大小不同,QListWidgetItem中的QPixmaps的顶部和底部部分将为空,并且单击此处也会触发ItemDelegate。如何摆脱这种选择?
感谢您的答复。我也在ListWidget中做了这样的事情。在Delegate :: paint()方法中将修改后的Qpixmap绘制到listItem中时,我们需要给出绘制QPixmap的坐标。我的问题是如何找到这些坐标,因为我的QPixmap是居中对齐的。 option.rect()。x()和y()给出项目的左上角坐标值。有没有办法让绘画中心对齐?还是我们需要手动计算? – 2012-03-08 07:03:30
我很难弄清楚你在做什么:-)也许你可以更具体地说明你在用QPixmap做什么以及为什么你需要坐标。 – 2012-03-08 10:52:10
让我告诉我的实际问题。在每个listItem中我有一个QPixmap。每个QPixmap的大小都是可变的。如果我点击listItem,相应的图片应该以这样的方式突出显示,即必须围绕该图片绘制圆角矩形。 因此,在委托绘画方法中,我获取数据(QPixmap)并在其周围绘制圆角矩形。然后我想在中心对齐的ListWidgetItem上绘制更新后的QPixmap。为了绘制QPixmap,我们需要指定QRect。无论如何,我们可以手动计算中心对齐的几何图形,但我想知道是否有更好的方法 – 2012-03-08 13:50:59