我是 Qt4 新手,但我似乎无法在手册或网上找到我需要的信息:
我已经实现了一个非常简单的数据模型,其中 data() 方法响应 DisplayRole、ToolTipRole 和 DecorationRole 输入。我还没有实现 headerData() 方法(但我测试了下面列出的一个)。
当我将模型与 QColumnView 一起使用时,列的大小是固定的。我的数据模型中各个节点的宽度变化很大,所以我正在寻找一种方法让 QColumnView 根据 data() 方法返回的数据自动设置列的宽度。
我找不到任何可用于其他类型视图的“setResizeMode()”方法。我尝试从 data() 返回一个 QSize(),输入角色为 SizeHintRole,如下所示:
text = str(node.display_name())
value = QtCore.QSize(len(text)*10,20)
奇怪的是高度似乎被调整了,但列的宽度仍然是恒定的。
我尝试实现如下所示的 headerData 方法:
def headerData(self, index, orientation, role ) :
ret = QtGui.QHeaderView()
ret.setResizeMode( QtGui.QtHeaderView.ResizeToContents )
return ret
但这没有任何效果;我确信标题视图需要以其他方式进行操作和设置,但我很难找出那是什么。
有人可以为新手指出正确的方向吗?谢谢。