PyQt邮件列表中Benno Dielmann提出的以下问题自2008年以来一直没有得到答复:
[…] 我有一个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单元格中获取焦点帧的常用方法是什么?[…]
我也遇到了同样的问题。在经历了很多挫折之后,我在被弃用的QStyledItem类中找到了答案。下面是基于该代码的PyQt/PySide解决方案:
相关问题 更多 >
编程相关推荐