0
自2008年从诺Dielmann PyQt的邮件列表上的以下问题一直没有得到答复:如何在QStyledItemDelegate中绘制样式化的焦点矩形?
[..] 我有一个QStyledItemDelegate子类实现paint()来得出一些QTableView中单元格的内容。如果其中一个单元格获得了焦点,如何使它绘制焦点矩形?我试过这个:
class MyDelegate(QStyledItemDelegate):
...
def paint(self, painter, option, index):
...
painter.save()
if option.state & QStyle.State_HasFocus:
self.parent().style().drawPrimitive(QStyle.PE_FrameFocusRect, option, painter)
...
painter.restore()
但是这根本就没有做什么。没有错误,没有焦点框架。我只想让QStyle系统以某种方式绘制通常的对焦框,如果我的自定义绘制的单元格中有一个具有焦点。 QStyle文档告诉我创建一个QStyleOptionFocusRect并使用initFrom()。但initFrom()需要一个QWidget,在这种情况下我没有。
我只是不明白。
什么是平常的方式来获得焦点帧通过自定义代表涂QTableView中的细胞?[..]