私は Qt4 の初心者ですが、マニュアルやネットで必要な情報が見つからないようです。
DisplayRole、ToolTipRole、DecorationRole の入力に応答する data() メソッドを使用して、非常に単純なデータ モデルを実装しました。私は headerData() メソッドを実装していません (ただし、以下にリストされているものをテストしました)。
モデルを QColumnView で使用すると、列のサイズが固定されます。私のデータモデルのさまざまなノードの幅はかなり異なるため、 data() メソッドから返されたデータに従って QColumnView が列の幅を自動的に設定する方法を探しています。
他の種類のビューで使用できる「setResizeMode()」メソッドが見つかりません。次のようなもので、SizeHintRole の入力ロールを持つ data() から QSize() を返そうとしました:
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
しかし、それは何の効果もありませんでした。ヘッダー ビューを操作して別の方法で設定する必要があることは確かですが、それが何であるかを見つけるのに苦労しています。
誰かが初心者を正しい方向に向けることができますか? ありがとう。