亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

對PyQt5中樹結構的實現方法詳解

發布時間:2020-08-19 23:10:13 來源:腳本之家 閱讀:511 作者:husthgzjp 欄目:開發技術

樹的實質是很多條數據按照一定的內在關系,分層級顯示出來。因此每一條數據包括數據項和相互關系。數據項就對應了樹中的column,而相互關系對應的是應該顯示在哪一個條目下。

PyQt5中,樹的實現有兩種形式,其中較為簡單的是使用Tree Widget控件。

對于靜態的數據,實現樹結構可以直接在Qt中拖入一個Tree Widget控件,然后右鍵點擊它,選擇編輯。

對PyQt5中樹結構的實現方法詳解

對PyQt5中樹結構的實現方法詳解

其中column是每一條數據有幾個數據項,Item體現的是數據和數據之間是什么關系。

對于我們需要從數據庫中查出來的數據,我么需要根據實際的數據進行排列,確定一個樹的每一級有多少個條目。

其中有一種可行的實現方法是,受限用SQL對查到的數據按照樹從上到下的結構排序,然后用如下代碼實現:

a = ['1', '11', '12', '13', '2', '21', '22', '23']
# 你的數據按照
# 【root,child1,child11,child12,child13,child2,child21,child22】
# 這種順序排列
for i in range(len(a)):
  if len(a[i]) == 1 :
    root = QtWidgets.QTreeWidgetItem(self.treeWidget)
    root.setText(0,a[i])
   elif len(a[i]) == 2 :
    child = QtWidgets.QTreeWidgetItem(root)
    child.setText(0,a[i])

用上述代碼得到的就是一個僅僅只有顯示功能的樹。

一般情況下,我們希望我們點擊樹的某一個條目,能夠有相應的操作。

進入到信號和槽的編輯界面,左鍵點擊Tree Widget,拖動到Form的空白處,出現信號和槽的編輯界面。

對PyQt5中樹結構的實現方法詳解

左邊是Tree Widget的信號的列表,右邊是我們自定義的槽,可以點擊Edit進行增加和刪除。

Tree Widget的信號說明可以參考QT的幫助文檔。如下是itemClicked信號的說明:

[signal] void QTreeWidget::itemClicked(QTreeWidgetItem *item, int column)

This signal is emitted when the user clicks inside the widget.

The specified item is the item that was clicked. The column is the item's column that was clicked. If no item was clicked, no signal will be emitted.

經過上述編輯之后,ui文件生成的py文件中,實現信號和槽連接的代碼如下:

self.treeWidget.itemClicked['QTreeWidgetItem*','int'].connect(Form.tree_item_click)
# 其中tree_item_click是自己定義的槽函數

槽函數的參數與信號的參數要相同,或者更少。

def tree_item_click(self,item,n):
    print(item.text(n))

item為QTreeWidgetItem類。可以參照QT幫助文檔中的QTreeWidgetItem類的說明,實現自定義的功能。

總結:本文提供了一種樹結構的實現,樹的某個條目被點擊之后的響應的實現。更多的是提供了一種PyQt相關資料的查詢方法。通過對QT幫助文檔的查詢,可以指導PyQt的應用。

以上這篇對PyQt5中樹結構的實現方法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴山县| 肃北| 景宁| 谷城县| 玉环县| 宁晋县| 长宁县| 厦门市| 江口县| 康平县| 菏泽市| 安新县| 华安县| 黔西县| 乌鲁木齐市| 安达市| 伊川县| 湘潭县| 自治县| 庆安县| 宁乡县| 封开县| 集安市| 富顺县| 顺平县| 嘉峪关市| 门头沟区| 贵德县| 和政县| 逊克县| 绥芬河市| 晋城| 砀山县| 万山特区| 阿瓦提县| 大余县| 屯门区| 建昌县| 岑巩县| 吉林市| 绵竹市|