標籤:

PyQt5系列教程(38):還是QQ模擬(QListWidget的使用)1

今天我們一起學習一下QListWidget類,乍一看還以為是QListView。當然它們之間是有區別的,QListView是基於Model,而QListWidget是基於Item。本期的介紹我們還是以模擬QQ為例,當然功能上有了更新和進步了。

總體介紹

QListWidget類提供了一個基於項目(Item)的列表小部件。

QListWidget是一個使用十分方便的類,它提供了一個類似於QListView提供的列表視圖,但具有用於添加和移除項目的功能。 QListWidget使用內部模型來管理列表中的每個QListWidgetItem。

對於更靈活的列表視圖窗口小部件,請使用帶有標準模型的QListView類。

列表小部件的構建方式與其他小部件相同:

listWidget = QListWidget(self)

列表小部件的selectionMode()確定可以同時選擇列表中的多少個項目,以及是否可以創建項目的複雜選擇。這可以使用setSelectionMode()函數進行設置。

有兩種方法可以將項目添加到列表中:可以使用列表窗口小部件作為其父窗口小部件來構建它們,也可以在沒有父窗口小部件的情況下構建它們,並在稍後將其添加到列表中。如果在構建項目時已經存在列表小部件,則第一種方法更易於使用:

QListWidgetItem("Oak", listWidget)QListWidgetItem("Fir", listWidget)QListWidgetItem("Pine", listWidget)

如果您需要將新項目插入到特定位置的列表中,則應該在沒有父窗口小部件的情況下構建它。然後應該使用insertItem()函數將它放在列表中。列表小部件將取得該項目的所有權。

newItem = QListWidgetItem()newItem.setText("新項目")listwidget.insertItem(row, newItem)

對於多個項目,可以使用insertItems()代替。使用count()函數可以找到列表中的項目數。要從列表中刪除項目,請使用takeItem()。

列表中的當前項目可以通過currentItem()找到,並可以通過setCurrentItem()更改。用戶還可以通過使用鍵盤導航或點擊不同的項目來更改當前項目。當前項目更改時,currentItemChanged()信號將與新的當前項目和先前當前的項目一起發送。

類歸屬

PyQt5->QtWidgets->QListWidget

繼承關係

繼承:QListView

更多詳細的介紹請見官網:

QListWidget Class?

doc.qt.io圖標

小例子

本期我們實現的小例子還是模擬一個QQ用戶列表的界面,因為功能較上期增刪了一部分內容,用動畫不足以體現,這期用視頻,效果如下:

https://www.zhihu.com/video/965707753544781824

通過這個視頻文件,我們可以知曉,這期的QQ模擬與上期相比較,做出了如下修改:

1、滑鼠滑動QQ聯繫人出現過渡效果(這個不是本次重點,不做介紹,後面會專門介紹QSS)

2、會員紅名專享

3、轉移聯繫人到指定分組,菜單上不會出現聯繫人現在所在分組。

4、新增好友(只能在「我的好友」分組中新增,其它分組只能通過「我的好友」轉移過去)

5、Ctrl鍵多選聯繫人實現批量刪除與轉移聯繫人

詳細的介紹,從下期開始。放假就簡單的更一篇吧!

最後

ok,今天的介紹就到這裡吧。如果你喜歡本篇文章,請給我點贊

讚賞(推薦)

分享給你的好友們吧!

關注微信公眾號:學點編程吧,你可以學到更多!加油!(? ??_??)? (*?????)


推薦閱讀:

TAG:PyQt5 | | PyQt | Python |