Pyqt5 QTreeWidget 사용
The QTreeWidget class is a convenience class that provides a standard tree widget with a classic item-based interface similar to that used by the QListView class in Qt 3. This class is based on Qt's Model/View architecture and uses a default model to hold items, each of which is a QTreeWidgetItem.
Developers who do not need the flexibility of the Model/View framework can use this class to create simple hierarchical lists very easily. A more flexible approach involves combining a QTreeView with a standard item model. This allows the storage of data to be separated from its representation.
1. QTreeWidget의 실례화
treeWidget = QtWidgets.QTreeWidget(parent)
MainWindow에 QTreeWidget을 추가하는 경우:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.treeWidget = QtWidgets.QTreeWidget(self.centralwidget)
self.treeWidget.setObjectName("treeWidget")
2. QTreeWidget의 헤더
헤더는 self를 통과합니다.treeWidget.headerItem() 반환, QTreeWidgetItem 유형의 객체
self.treeWidget.headerItem().setText(0, "key")는 헤더 디스플레이 이름을 설정할 수 있습니다.
3. QTreeWidget 하위 트리와 하위 노드 만들기
root1=QtWidgets.QTreeWidgetItem(self.treeWidget) #QTreeWidgetItem object: root
root1.setText(0,root_name) #set text of root1
para_list=["alpha","beta","gama"]
for i in range(len(para_list)):
child=QtWidgets.QTreeWidgetItem(root) #child of root
child.setText(0,para_list[i])
root2...
QtreeWidgetItem(parent)treeWidget 아래에 루트 노드를 만들고 루트 아래에 여러 개의 하위 노드를 생성합니다
QtreeWidgetItem.setText(column,text)는 어떤 열에 표시할 문자열을 설정합니다. 예를 들어 setText(0,"alpha")는 첫 번째 열에 알파를 표시합니다
QtreeWidgetItem.setFlags(QtCore.Qt.ItemFlags)는 Item의 flag를 설정할 수 있습니다. 예를 들어 선택 가능, 편집 가능 등입니다.
Constant
Value
Description
Qt::NoItemFlags
0
It does not have any properties set.
Qt::ItemIsSelectable
1
It can be selected.
Qt::ItemIsEditable
2
It can be edited.
Qt::ItemIsDragEnabled
4
It can be dragged.
Qt::ItemIsDropEnabled
8
It can be used as a drop target.
Qt::ItemIsUserCheckable
16
It can be checked or unchecked by the user.
Qt::ItemIsEnabled
32
The user can interact with the item.
Qt::ItemIsTristate
64
The item is checkable with three separate states.
4
root.setFlags(QtCore.Qt.NoItemFlags)
NoItemFlags는 이 Item에 아무런 속성이 없음을 나타냅니다.4.QTreeWidget 노드 선택
QTreeWidget은 기본적으로 단일 선택 노드입니다. 다중 선택 노드를 설정하려면treeWidget를 사용하십시오.setSelectionMode(mode) 설정
설정할 수 있는 선택 모드는 다음과 같습니다. 그 중에서 가장 자주 사용하는 것은SingleSelection과 ExtendedSelection입니다.
Constant
Value
Description
QAbstractItemView::SingleSelection
1
When the user selects an item, any already-selected item becomes unselected. It is possible for the user to deselect the selected item.
QAbstractItemView::ContiguousSelection
4
When the user selects an item in the usual way, the selection is cleared and the new item selected. However, if the user presses the Shift key while clicking on an item, all items between the current item and the clicked item are selected or unselected, depending on the state of the clicked item.
QAbstractItemView::ExtendedSelection
3
When the user selects an item in the usual way, the selection is cleared and the new item selected. However, if the user presses the Ctrl key when clicking on an item, the clicked item gets toggled and all other items are left untouched. If the user presses the Shift key while clicking on an item, all items between the current item and the clicked item are selected or unselected, depending on the state of the clicked item. Multiple items can be selected by dragging the mouse over them.
QAbstractItemView::MultiSelection
2
When the user selects an item in the usual way, the selection status of that item is toggled and the other items are left alone. Multiple items can be toggled by dragging the mouse over them.
QAbstractItemView::NoSelection
0
Items cannot be selected.
선택한 노드는self를 통과할 수 있습니다.treeWidget.선택한 Item 목록을 selectedItems () 로 되돌려줍니다. 목록에 있는 모든 Item은 QTreeWidgetItem 대상입니다.Item.text (0) 는 item column 0 을 선택한 내용입니다.
Item_list=self.treeWidget.selectedItems() #return the selected item as a list
for ii in Item_list:
print ii.text(0)
5.signal 및 slot
QTreeWidget은 신호와 슬롯 메커니즘을 사용하여 QT 아래의 대상과 통신할 수 있으며 마우스 클릭으로 터치하면 다음과 같다.
self.treeWidget.itemClicked['QTreeWidgetItem*','int'].connect(MainWindow.getitem)
getitem () slot 함수에 itemClicked 신호 연결
def getitem(self, item,column):
Item_list=self.treeWidget.selectedItems()
for ii in Item_list:
print ii.text(0)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.