2011-12-30 2 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