Как вставить новый элемент в родительский элемент
Не пойму, как сделать, чтобы при нажатии на item добавлялся дочерний item, а то у меня получается так, что добавляется в корневой item.
import sys
from PyQt6.QtWidgets import *
import os
# path = os.path.dirname(__file__)
path = os.path.dirname(os.path.dirname(__file__))
class Conv(QDialog):
def __init__(self):
super().__init__()
self.resize(500, 400)
self.tree = QTreeWidget(self)
self.tree.header().hide()
self.btn = QPushButton('Add', self)
self.btn.move(300, 200)
self.btn.clicked.connect(self.addy)
# self.fileTree()
self.items()
def items(self):
item = QTreeWidgetItem()
item.setText(0, 'Начало')
self.tree.addTopLevelItem(item)
q = QTreeWidgetItem(item)
q.setText(0, 'Hello')
def addy(self):
if self.tree.selectedItems():
b = QTreeWidgetItem(self.tree)
b.setText(0, 'New')
if __name__ == '__main__':
app = QApplication(sys.argv)
conv = Conv()
conv.show()
sys.exit(app.exec())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, QTreeWidgetItem *preceding, int type = Type)
Создает элемент виджета дерева указанного типа, который вставляется в родительский элемент после предыдущего дочернего элемента.
import sys
import os
'''
from PyQt6.QtWidgets import * # PyQt6
'''
from PyQt5.Qt import * # PyQt5
# path = os.path.dirname(__file__)
# ??? path = os.path.dirname(os.path.dirname(__file__))
class Conv(QDialog):
def __init__(self):
super().__init__()
self.resize(500, 400)
self.tree = QTreeWidget(self)
self.tree.header().hide()
self.btn = QPushButton('Add', self)
self.btn.move(300, 200)
self.btn.clicked.connect(self.addy)
self.items()
def items(self):
item = QTreeWidgetItem()
item.setText(0, 'Начало')
self.tree.addTopLevelItem(item)
q = QTreeWidgetItem(item)
q.setText(0, 'Hello')
def addy(self):
items = self.tree.selectedItems()
if items:
b = QTreeWidgetItem(items[0]) # <---- items[0]
b.setText(0, 'New')
if __name__ == '__main__':
app = QApplication(sys.argv)
conv = Conv()
conv.show()
sys.exit(app.exec())

