2011-12-30 61 views
2

Yasin UludagがPyTt(PySide)を使って簡単なツリービューを作成するのに便利なオンラインチュートリアルをたどりましたが、ツールチップがうまく動作するのに問題があります。次のコードでは、ヒントのテキストはツールヒントのウィンドウではなくコンソールに表示されます。私が見た他のすべての例では、ウィジェットの項目で直接setToolTipを使用していますが、このModel/Viewアプローチでは直接アクセスできないと思います。私はQTreeView自体で行う必要があるいくつかの初期化はありますか?QTreeView項目のPyQTにツールチップを表示する

class TreeModel(QtCore.QAbstractItemModel): 

    def __init__(self, root, parent=None): 
     super(NXTreeModel, self).__init__(parent) 
     self._rootNode = root 

    def data(self, index, role): 

      node = index.internalPointer() 

     if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole: 
      return node.name() 

     if role == QtCore.Qt.ToolTipRole: 
      return node.keys() 

答えて

0

あなたはそれがコードの下のように働いたツールヒントの役割

class TreeModel(QtCore.QAbstractItemModel): 
    ... 

    def flags(self, index): 
     if not index.isValid(): 
      return 0 
     return QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled |\ 
       QtCore.Qt.ItemIsSelectable | QtCore.Qt.ToolTip 
+1

Qt :: ToolTipはQtのフラグではありません。これは機能しません。代わりにデータ関数を使用して、Qt :: ToolTipRoleに便利なものを返します。 –

1

を有効にする必要があります。

class TreeModel(QAbstractItemModel): 
    ... 
    def data(self, index, role=Qt.DisplayRole): 
     ... 
     if role == Qt.ToolTipRole: 
      return 'ToolTip' 

    def flags(self, index): 
     if not index.isValid(): 
      return Qt.NoItemFlags # 0 
     return Qt.ItemIsSelectable # or Qt.ItemIsEnabled 
関連する問題