日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

PyQt5树形结构控件QTreeWidget操作

發布時間:2025/3/11 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PyQt5树形结构控件QTreeWidget操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QTreeWidget 類根據預設的模型提供樹形顯示控件。

QTreeWidget 使用類似于 QListView 類的方式提供一種典型的基于 item 的樹形交互方法類,該類基于QT的“模型/視圖”結構,提供了默認的模型來支撐 item 的顯示,這些 item 類為 QTreeWidgetItem 類。

如果不需要靈活的“模型/視圖”框架,可以使用QTreeWidget 來創建有層級關系的樹形結構。當把標準 item 模型結合 QTreeView 使用時,可以得到更靈活的使用方法,從而把“數據”和“顯示”分離開。




QTreeWidget 信號

測試例子:

""" python主文件 """ # -*- coding: utf-8 -*- from PyQt5 import QtCore from PyQt5.QtWidgets import QDesktopWidget import sys from PyQt5.QtWidgets import *import tree # tree.py文件class myTreeWidget:def __init__(self, objTree):self.myTree = objTree# 設置列數self.myTree.setColumnCount(1)# 設置樹形控件頭部的標題self.myTree.setHeaderLabels(['機構列表'])# 設置根節點self.root = QTreeWidgetItem(self.myTree)self.root.setText(0, '本單位')# 設置樹形控件的列的寬度self.myTree.setColumnWidth(0, 100)# 設置子節點1child1 = QTreeWidgetItem(self.root)child1.setText(0, '市場部')self.root.addChild(child1)# 設置子節點11child11 = QTreeWidgetItem(child1)child11.setText(0, '銷售班')# 設置子節點2child2 = QTreeWidgetItem(self.root)child2.setText(0, '財務部')# 設置子節點21child21 = QTreeWidgetItem(child2)child21.setText(0, '財務一班')# 加載根節點的所有屬性與子控件self.myTree.addTopLevelItem(self.root)# TODO 優化2 給節點添加響應事件self.myTree.clicked.connect(self.onClicked)# 節點全部展開self.myTree.expandAll()def onClicked(self):item = self.myTree.currentItem()print('Key=%s' % (item.text(0)))class MyPyQTMainForm(QMainWindow, tree.Ui_MainWindow):"""主界面"""def __init__(self):"""初始化"""super(MyPyQTMainForm, self).__init__()self.setupUi(self)# 創建樹控件對象self.myTreeTest = myTreeWidget(self.treeWidget)def center(self):"""定義一個函數使得窗口居中顯示"""# 獲取屏幕坐標系screen = QDesktopWidget().screenGeometry()# 獲取窗口坐標系size = self.geometry()newLeft = (screen.width() - size.width()) / 2newTop = (screen.height() - size.height()) / 2self.move(int(newLeft), int(newTop))def addNode(self):"""添加節點"""print('--- addTreeNode ---')item = self.myTreeTest.myTree.currentItem()node = QTreeWidgetItem(item)node.setText(0, '后勤部')def deleteNode(self):"""刪除節點"""print('--- delTreeNode ---')item = self.myTreeTest.myTree.currentItem()root = self.myTreeTest.myTree.invisibleRootItem()for item in self.myTreeTest.myTree.selectedItems():(item.parent() or root).removeChild(item)def modifyNode(self):"""修改節點"""print('--- modifyTreeNode ---')item = self.myTreeTest.myTree.currentItem()item.setText(0, '辦公室')""" 主函數 """ if __name__ == '__main__':app = QApplication(sys.argv)myPyMainForm = MyPyQTMainForm()# 主窗口顯示在屏幕中間myPyMainForm.center()# 禁止最大化按鈕myPyMainForm.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowCloseButtonHint)# 禁止拉伸窗口大小myPyMainForm.setFixedSize(myPyMainForm.width(), myPyMainForm.height())# 顯示主界面myPyMainForm.show()sys.exit(app.exec_())

效果:

總結

以上是生活随笔為你收集整理的PyQt5树形结构控件QTreeWidget操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。