0
이 코드는 QTreeWidget과 버튼이있는 단일 대화 상자를 만듭니다. 버튼을 클릭하면 현재 선택된 루트 항목의 모든 하위 항목을 삭제하려고합니다. 그것을 성취하는 방법?QTreeWidgetItem의 자식을 삭제하는 방법
app = QApplication([])
class Dialog(QDialog):
def __init__(self, *args, **kwargs):
super(Dialog, self).__init__()
self.setLayout(QVBoxLayout())
self.tree = QTreeWidget(self)
self.tree.setHeaderLabels(['Column name'])
for i in range(3):
root_item = QTreeWidgetItem()
root_item.setText(0, 'Root %s' % i)
self.tree.addTopLevelItem(root_item)
for n in range(3):
childItem = QTreeWidgetItem(root_item)
childItem.setText(0, 'Child %s' % n)
root_item.setExpanded(True)
btn = QPushButton(self)
btn.setText("Delete the selected Root item's child items")
btn.clicked.connect(self.onClick)
self.layout().addWidget(self.tree)
self.layout().addWidget(btn)
self.show()
def onClick(self):
current_item = self.tree.currentItem()
if not current_item:
print 'Please select root item fist'
elif current_item.parent():
print 'Child item is selected. Please select root item instead.'
else:
print 'Root item selected. Number of children: %r' % current_item.childCount()
tree = Dialog()
app.exec_()
을 자녀가없는 항목을 선택했기 때문에 당신이 보여주고 이미지가 약간 혼란, 당신이 선택하면 당신이 원하는 가정 자녀가있는 항목은 자녀 만 삭제됩니다. 내가 맞습니까? – eyllanesc
하위 항목을 삭제하려면 루트 항목을 선택해야합니다. 하위 항목을 선택하면 아무 일도 일어나지 않습니다. 사용자가 루트 항목을 선택해야한다는 알림 만 인쇄됩니다. – alphanumeric
* Root 0을 선택했을 때 * 다음과 같은 메시지가 나타납니다 * 루트 아이템 주먹을 선택하십시오 * – eyllanesc