Pyqt5 QTreeWIdgetItem с флажком для выбора одного элемента за разPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pyqt5 QTreeWIdgetItem с флажком для выбора одного элемента за раз

Сообщение Anonymous »

У меня есть QTreeWidget, и каждый QTreeWidgetItem имеет 3 флажка. Я хотел бы сделать две вещи, но не могу понять, как это сделать.
  • Пользователь должен иметь возможность установить только один флажок одновременно для
    каждого QTreeWidgetItem. Таким образом, выбор данного флажка
    QTreeWidgetItem должен отменить выбор других флажков этого
    QTreeWidgetItem.
    Выбор/отмена выбора данного родительского флажка QTreeWidgetItem
    должен установить/снять выбор всех его дочерних флажков в том же столбце.
    Ниже приведен мой код:
Будем очень признательны за любую помощь
from PyQt5 import QtWidgets
from PyQt5 import QtCore
from PyQt5 import QtGui
from PyQt5.Qt import Qt
import sys

def main():
app = QtWidgets.QApplication(sys.argv)
tree = QtWidgets.QTreeWidget()
tree.resize(500, 200)
headerItem = QtWidgets.QTreeWidgetItem()
item = QtWidgets.QTreeWidgetItem()
tree .setColumnCount(4)
tree .setHeaderLabels(["pluto", "X", "Y", "Z", ""])
for i in range(3):
parent = QtWidgets.QTreeWidgetItem(tree)
parent.setText(0, "Parent {}".format(i))
parent.setCheckState(1, Qt.Unchecked)
parent.setCheckState(2, Qt.Unchecked)
parent.setCheckState(3, Qt.Unchecked)
#parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
for x in range(5):
child = QtWidgets.QTreeWidgetItem(parent)
child.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
child.setText(0, "Child {}".format(x))
child.setCheckState(1, Qt.Unchecked)
child.setCheckState(2, Qt.Unchecked)
child.setCheckState(3, Qt.Unchecked)

tree.show()
sys.exit(app.exec_())

if __name__ == '__main__':
main()


Подробнее здесь: https://stackoverflow.com/questions/740 ... x-at-atime
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • JQuery .val() НЕ меняет значение для одного элемента выбора, но меняет значение для другого элемента выбора
    Anonymous » » в форуме Jquery
    0 Ответы
    154 Просмотры
    Последнее сообщение Anonymous
  • Поймайте ESC -ключ нажмите событие при редактировании QtreeWidgetItem
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • QtreeWidgetItem Отключить редактирование, если нажата клавиша вкладки
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • QtreeWidgetItem Отключить редактирование, если нажата клавиша вкладки
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Изотопный фильтр с флажком или выбор опций с несколькими вариантами выбора
    Гость » » в форуме Jquery
    0 Ответы
    35 Просмотры
    Последнее сообщение Гость

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