QtreeWidgetItem Отключить редактирование, если нажата клавиша вкладкиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 QtreeWidgetItem Отключить редактирование, если нажата клавиша вкладки

Сообщение Anonymous »

У меня есть приложение, которое использует 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • QtreeWidgetItem Отключить редактирование, если нажата клавиша вкладки
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Python, проверьте, нажата ли клавиша со стрелкой
    Гость » » в форуме Python
    0 Ответы
    40 Просмотры
    Последнее сообщение Гость
  • Как определить, была ли нажата клавиша Backspace в событии KeyPress?
    Anonymous » » в форуме C#
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Как узнать, была ли нажата клавиша вставки
    Anonymous » » в форуме Jquery
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как проверить, нажата ли клавиша 2 секунды в Unity3d на С#?
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»