我正在尝试创建一个表,其中每个项目都包含一对行,如下所示:

理想情况下,顶行的字体应该是不同的(而不仅仅是加粗)。
我的解决方案是子类化QItemDelegate并重载paint和sizeHint.上图显示paint工作正常,但我还没能弄清楚sizeHint。下面是我尝试过的(现在只使用单行的元素):
def sizeHint(self, option, index):
index_data = index.data(Qt.SizeHintRole)
if index_data is None:
return QSize()
size = QItemDelegate.textRectangle(None,
textLayoutBounds(option),
option.font, str(index_data))
return size不幸的是,使用PyQt时,无法访问受保护的成员函数textRectangle (由默认sizeHint调用)。这样做的正确方法是什么?
发布于 2011-12-07 09:08:28
我对你的问题没有一个完整的解决方案。但是,为了计算文本矩形,您可以看看QFontMetrics.boundingRect。另外,您可能对this answer中给出的富文本项委托感兴趣。
https://stackoverflow.com/questions/8393793
复制相似问题