У меня есть приложение, которое использует qtreewidget и qtreewidgetitems. Если новый элемент добавляется в Treewidget (щелкните правой кнопкой мыши -> Добавить элемент), можно записать в столбце «Заголовок 1». Если клавиша вкладки нажимается, фокус прыгает на столбец «Заголовок 0», который также может быть записан. Желаемое поведение состоит в том, что нажав клавишу TAB, QtreeWidgetItem становится неправдам. К сожалению, событие ключа вкладки не поймается. Пример: < /p>
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>
Кроме того, я не понимаю поведение клавиши вкладки внутри qtreewidget. Использование ключа вкладки можно перепрыгнуть между различными заголовками в одном и том же элементе. < /P>
Случай 2: Если старый элемент дважды щелкнут, а столбец отредактируется, клавиша вкладки просто вызывает прыжок между элементами, а сфокусированный столбец остается одинаковым. Ребята
Подробнее здесь: https://stackoverflow.com/questions/797 ... is-pressed
QtreeWidgetItem Отключить редактирование, если нажата клавиша вкладки ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение