TreeWidget für bestimmte Zeilen und Spalten bearbeitbar machenPython

Python-Programme
Guest
 TreeWidget für bestimmte Zeilen und Spalten bearbeitbar machen

Post by Guest »

Ich bin neu bei Pyqt6 und ich wollte die Möglichkeiten herumspielen, lernen und erkunden. p>

Code: Select all

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())
Ich könnte es schaffen, das QTreeWidget mit einigen Flags bearbeitbar zu machen.
Ist es möglich, die QTreeView-Elemente basierend auf ihrem Standort bearbeitbar zu machen?
Zum Beispiel für alle Stammzeilen in Spalte2 und Spalte3 oder für alle untergeordneten Zeilen nur die letzte Spalte.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post