我已经按照Yasin Uludag的一些有用的在线教程来试验PyQt(或者更确切地说是PySide)来创建一个简单的树视图,但是我在使用工具提示工作时遇到了问题。在以下代码中,工具提示文本显示在控制台上,而不是显示在工具提示窗口中。我见过的所有其他示例都直接在widget项上使用setToolTip,但我不认为我可以在此Model / View方法中直接访问它。我需要在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()
答案 0 :(得分: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
答案 1 :(得分: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