Сделать TreeWidget доступным для редактирования для определенной строки и столбцаPython

Программы на Python
Ответить
Anonymous
 Сделать TreeWidget доступным для редактирования для определенной строки и столбца

Сообщение Anonymous »

Я новичок в pyqt6, и мне хотелось поиграть, изучить и изучить возможности.
Для этого я создал простой основной фрейм с фиктивными данными и TreeWidget.

Код: Выделить всё

import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget

class MainWindow(QMainWindow):
def __init__(self):
super().__init__()

# Set up the window
self.setWindowTitle("QTreeWidget Example")
self.setGeometry(100, 100, 800, 600)

# Create the QTreeWidget
tree_widget = QTreeWidget(self)
tree_widget.setColumnCount(6)  # Set the number of columns
tree_widget.setHeaderLabels(["Col1", "Col2", "Col3", "Col4", "Col5", "Col6"])

# Add some parent rows and child rows with dummy data
root1 = QTreeWidgetItem(tree_widget, ["Root1", "Data1", "Data2", "Data3", "Data4", "Data5"])
child1 = QTreeWidgetItem(root1, ["Child1", "DataA", "DataB", "DataC", "DataD", "DataE"])
child2 = QTreeWidgetItem(root1, ["Child2", "DataX", "DataY", "DataZ", "DataW", "DataV"])

root2 = QTreeWidgetItem(tree_widget, ["Root2", "Info1", "Info2", "Info3", "Info4", "Info5"])
child3 = QTreeWidgetItem(root2, ["Child3", "DetailA", "DetailB", "DetailC", "DetailD", "DetailE"])
child4 = QTreeWidgetItem(root2, ["Child4", "DetailX", "DetailY", "DetailZ", "DetailW", "DetailV"])

root3 = QTreeWidgetItem(tree_widget, ["Root3", "Example1", "Example2", "Example3", "Example4", "Example5"])
child5 = QTreeWidgetItem(root3, ["Child5", "SubDataA", "SubDataB", "SubDataC", "SubDataD", "SubDataE"])
child6 = QTreeWidgetItem(root3, ["Child6", "SubDataX", "SubDataY", "SubDataZ", "SubDataW", "SubDataV"])

root4 = QTreeWidgetItem(tree_widget, ["Root4", "Sample1", "Sample2", "Sample3", "Sample4", "Sample5"])
child7 = QTreeWidgetItem(root4, ["Child7", "PartA", "PartB", "PartC", "PartD", "PartE"])
child8 = QTreeWidgetItem(root4, ["Child8", "PartX", "PartY", "PartZ", "PartW", "PartV"])

root5 = QTreeWidgetItem(tree_widget, ["Root5", "Test1", "Test2", "Test3", "Test4", "Test5"])
child9 = QTreeWidgetItem(root5, ["Child9", "ItemA", "ItemB", "ItemC", "ItemD", "ItemE"])
child10 = QTreeWidgetItem(root5, ["Child10", "ItemX", "ItemY", "ItemZ", "ItemW", "ItemV"])

# Layout setup
layout = QVBoxLayout()
layout.addWidget(tree_widget)

# Set up the central widget
central_widget = QWidget(self)
central_widget.setLayout(layout)
self.setCentralWidget(central_widget)

# Main application entry
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
Мне удалось сделать TreeWidget редактируемым с помощью некоторых флагов.
Мой вопрос:
Можно ли сделать TreeView доступным для редактирования на месте например для всех корневых строк в столбце2 и столбце3? Или, например. для всех дочерних строк только последний столбец?
Заранее спасибо.
С уважением :)

Подробнее здесь: https://stackoverflow.com/questions/793 ... and-column
Ответить

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

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

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

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

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