中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

對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

龙岩市| 华阴市| 临沭县| 吉木萨尔县| 海宁市| 平舆县| 齐齐哈尔市| 耒阳市| 德兴市| 永宁县| 博罗县| 高淳县| 富源县| 苏尼特右旗| 西吉县| 扶余县| 噶尔县| 涿鹿县| 通州市| 泸州市| 永善县| 华亭县| 蓬莱市| 濮阳县| 浏阳市| 大英县| 阳朔县| 大足县| 临湘市| 德清县| 抚顺市| 邢台市| 黔西| 正安县| 商丘市| 新野县| 乌拉特后旗| 克东县| 当雄县| 张家港市| 禄劝|