欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對PyQt5中樹結(jié)構(gòu)的實(shí)現(xiàn)方法詳解

 更新時間:2019年06月17日 11:01:16   作者:husthgzjp  
今天小編就為大家分享一篇對PyQt5中樹結(jié)構(gòu)的實(shí)現(xiàn)方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

樹的實(shí)質(zhì)是很多條數(shù)據(jù)按照一定的內(nèi)在關(guān)系,分層級顯示出來。因此每一條數(shù)據(jù)包括數(shù)據(jù)項(xiàng)和相互關(guān)系。數(shù)據(jù)項(xiàng)就對應(yīng)了樹中的column,而相互關(guān)系對應(yīng)的是應(yīng)該顯示在哪一個條目下。

PyQt5中,樹的實(shí)現(xiàn)有兩種形式,其中較為簡單的是使用Tree Widget控件。

對于靜態(tài)的數(shù)據(jù),實(shí)現(xiàn)樹結(jié)構(gòu)可以直接在Qt中拖入一個Tree Widget控件,然后右鍵點(diǎn)擊它,選擇編輯。

其中column是每一條數(shù)據(jù)有幾個數(shù)據(jù)項(xiàng),Item體現(xiàn)的是數(shù)據(jù)和數(shù)據(jù)之間是什么關(guān)系。

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

其中有一種可行的實(shí)現(xiàn)方法是,受限用SQL對查到的數(shù)據(jù)按照樹從上到下的結(jié)構(gòu)排序,然后用如下代碼實(shí)現(xiàn):

a = ['1', '11', '12', '13', '2', '21', '22', '23']
# 你的數(shù)據(jù)按照
# 【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])

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

一般情況下,我們希望我們點(diǎn)擊樹的某一個條目,能夠有相應(yīng)的操作。

進(jìn)入到信號和槽的編輯界面,左鍵點(diǎn)擊Tree Widget,拖動到Form的空白處,出現(xiàn)信號和槽的編輯界面。

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

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.

經(jīng)過上述編輯之后,ui文件生成的py文件中,實(shí)現(xiàn)信號和槽連接的代碼如下:

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

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

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

item為QTreeWidgetItem類??梢詤⒄誕T幫助文檔中的QTreeWidgetItem類的說明,實(shí)現(xiàn)自定義的功能。

總結(jié):本文提供了一種樹結(jié)構(gòu)的實(shí)現(xiàn),樹的某個條目被點(diǎn)擊之后的響應(yīng)的實(shí)現(xiàn)。更多的是提供了一種PyQt相關(guān)資料的查詢方法。通過對QT幫助文檔的查詢,可以指導(dǎo)PyQt的應(yīng)用。

以上這篇對PyQt5中樹結(jié)構(gòu)的實(shí)現(xiàn)方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論