我尝试在 QListView 中设置项目边界线。
当鼠标悬停在项目上时,线条出现,当鼠标离开项目时,线条恢复正常。这就是我想要的。
所以,我使用 QStyledItemDelegate 似乎这样做,这是不正确的。
class PixmapItemDelegate(QtGui.QStyledItemDelegate):
def paint(self, painter, option, index):
painter.save()
if (option.state & QtGui.QStyle.State_MouseOver):
pen = QtGui.QPen(QtCore.Qt.yellow)
else:
pen = QtGui.QPen(QtCore.Qt.transparent)
pen.setWidth(2)
painter.setPen(pen)
painter.setBrush(QtGui.QBrush(QtCore.Qt.transparent))
painter.drawRect(option.rect)
painter.restore()
super(PixmapItemDelegate, self).paint(painter, option, index)
代码在上面。
如果我选择该项目,它搞砸了。
所选项目有边界并且不会消失。
我该如何解决?