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小例子
本期我們實現的小例子還是模擬一個QQ用戶列表的界面,因為功能較上期增刪了一部分內容,用動畫不足以體現,這期用視頻,效果如下:
https://www.zhihu.com/video/965707753544781824通過這個視頻文件,我們可以知曉,這期的QQ模擬與上期相比較,做出了如下修改:
1、滑鼠滑動QQ聯繫人出現過渡效果(這個不是本次重點,不做介紹,後面會專門介紹QSS)
2、會員紅名專享
3、轉移聯繫人到指定分組,菜單上不會出現聯繫人現在所在分組。
4、新增好友(只能在「我的好友」分組中新增,其它分組只能通過「我的好友」轉移過去)
5、Ctrl鍵多選聯繫人實現批量刪除與轉移聯繫人
詳細的介紹,從下期開始。放假就簡單的更一篇吧!
最後
ok,今天的介紹就到這裡吧。如果你喜歡本篇文章,請給我點贊
讚賞(推薦)
分享給你的好友們吧!
關注微信公眾號:學點編程吧,你可以學到更多!加油!(? ??_??)? (*?????)
推薦閱讀: