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

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

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

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

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

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

其中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的空白處,出現信號和槽的編輯界面。

左邊是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類??梢詤⒄誕T幫助文檔中的QTreeWidgetItem類的說明,實現自定義的功能。

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

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

相關文章

  • 對Python3中bytes和HexStr之間的轉換詳解

    對Python3中bytes和HexStr之間的轉換詳解

    今天小編就為大家分享一篇對Python3中bytes和HexStr之間的轉換詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python連接數據庫并批量插入包含日期記錄的操作

    Python連接數據庫并批量插入包含日期記錄的操作

    這篇文章主要介紹了Python連接數據庫并批量插入包含日期記錄的操作,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • python threading模塊操作多線程介紹

    python threading模塊操作多線程介紹

    這篇文章主要介紹了python threading模塊操作多線程介紹,本文給出簡單使用實例,需要的朋友可以參考下
    2015-04-04
  • 使用python制作游戲下載進度條的代碼(程序說明見注釋)

    使用python制作游戲下載進度條的代碼(程序說明見注釋)

    這篇文章主要介紹了用python制作游戲下載進度條的代碼(程序說明見注釋),代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • python實現自動售貨機

    python實現自動售貨機

    這篇文章主要為大家詳細介紹了python實現自動售貨機,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • python實現mysql的單引號字符串過濾方法

    python實現mysql的單引號字符串過濾方法

    這篇文章主要介紹了python實現mysql的單引號字符串過濾方法,以一個較為詳細的實例形式分析了Python針對MySQL的操作及字符串過濾的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Python函數中閉包和延遲綁定詳情

    Python函數中閉包和延遲綁定詳情

    這篇文章主要介紹了Python函數中閉包和延遲綁定詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 使用Python讀取大文件的方法

    使用Python讀取大文件的方法

    這篇文章主要介紹了使用Python讀取大文件的方法,需要的朋友可以參考下
    2018-02-02
  • Python實現基于PIL和tesseract的驗證碼識別功能示例

    Python實現基于PIL和tesseract的驗證碼識別功能示例

    這篇文章主要介紹了Python實現基于PIL和tesseract的驗證碼識別功能,結合實例形式分析了Python使用PIL與tesseract進行驗證碼識別操作的具體技巧與相關注意事項,需要的朋友可以參考下
    2018-07-07
  • python實現稀疏矩陣示例代碼

    python實現稀疏矩陣示例代碼

    本篇文章主要介紹了python實現稀疏矩陣示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論