我遵循 Yasin Uludag 的一些有用的在线教程来尝试使用 PyQt(或更确切地说 PySide)来创建一个简单的树视图,但我在使用工具提示时遇到问题。在以下代码中,工具提示文本显示在控制台上而不是工具提示窗口中。我见过的所有其他示例都直接在小部件项上使用 setToolTip,但我认为我无法在这种模型/视图方法中直接访问它。我需要对 QTreeView 本身进行一些初始化吗?
 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()
小智 6
它的工作原理如下代码所示。
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
小智 0
您必须启用 ToolTip 角色
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
| 归档时间: | 
 | 
| 查看次数: | 5173 次 | 
| 最近记录: |