from PyQt5 import QtCore, QtGui, QtWidgets
class CTreeWidgetItem(QtWidgets.QTreeWidgetItem):
def __init__(self, parent=None):
QtWidgets.QTreeWidgetItem.__init__(self, parent)
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Tab:
self.setFlags(self.flags() | ~QtCore.Qt.ItemIsEditable)
print('not working')
def create_treeWidget():
treeWidget = QtWidgets.QTreeWidget()
treeWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
treeWidget.customContextMenuRequested.connect(openContextMenu)
treeWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
treeWidget.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
treeWidget.setTabKeyNavigation(True)
treeWidget.headerItem().setText(0, "Header 0")
treeWidget.headerItem().setText(1, "Header 1")
treeWidget.headerItem().setText(2, "Header 2")
return treeWidget
def openContextMenu(event):
menu = QtWidgets.QMenu()
action = menu.addAction('add item', addItem)
menu.exec_(tree.mapToGlobal(event))
def addItem():
item = CTreeWidgetItem(tree)
item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable)
tree.editItem(item, 1)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
app.setStyle("fusion")
tree = create_treeWidget()
tree.show()
sys.exit(app.exec_())
< /code>
Пример для задачи < /p>
- Выполнение скрипта < /li>
Клинок правой кнопкой редактируемый.
Подробнее здесь: https://stackoverflow.com/questions/797 ... is-pressed