PyQt比較受歡迎的地方在於其強大的控制項支持,從本篇開始,我將帶大家詳細了解下PyQt5中的一些常用控制項。喜歡Python編程的小夥伴們關注我,後續會推出一些GUI編程相關內容。
QLabel控制項是PyQt中一個常用的控制項,它不僅可以作為一個佔位符顯示不可編輯的文本或圖片(展示GIF動畫圖片),還可以被用作提示標記為其他控制項;一些純文本、連結或富文本可以顯示在QLabel標籤上。
QLabel類
先來看下QLabel類的父類有哪些?
我們之前有一篇文章提到了獲取類的多繼承順序的方法,我們使用了inspect模塊(參見高樓萬丈平地起,基礎要打牢!Python獲取類的層次結構和繼承順序)。這裡,我們看下QLabel的繼承順序是怎樣的?
import inspect
from PyQt5.QtWidgets import QLabel
print(inspect.getmro(QLabel))
>>>
(<class 'PyQt5.QtWidgets.QLabel'>, <class 'PyQt5.QtWidgets.QFrame'>, <class 'PyQt5.QtWidgets.QWidget'>, <class 'PyQt5.QtCore.QObject'>, <class 'sip.wrapper'>, <class 'PyQt5.QtGui.QPaintDevice'>, <class 'sip.simplewrapper'>, <class 'object'>)
準確的繼承順序應該是這樣的:
object>sip.simplewrapper>QPaintDevice>sip.wrapper>QObject>QWidget>QFrame>QLabel
結果得知,QLabel類直接繼承自QFrame類。
QLabel常用方法
QLabel常用方法如下:
QLabel常用信號
我們知道,PyQt使用了信號槽的機制來綁定控制項響應事件。那麼,QLabel中提供的常用信號有哪些呢?主要針對超連結中使用的信號進行說明:
linkActivated:單擊標籤中的超連結(此時,希望在新窗口中打開該連結,setOpenExternalLinks必須設置為True)
linkHovered:滑鼠指針划過標籤的超連結
應用案例
使用標籤顯示圖片、文本、超連結
我們使用標籤控制項實現下面的界面:
第一個標籤是綠色背景文本標籤;第二個標籤是個超連結標籤,當滑鼠經過時,列印信息;第三個標籤用於顯示Pixmap圖像;第四個標籤超連結百度搜索關鍵字Python,單擊該標籤時,瀏覽器窗口打開百度搜索Python的內容。
不贅述,直接上代碼如下圖所示。
好了,成功完成了上述功能。
setBuddy()方法應用案例
上面提到了可以設置標籤的Buddy(夥伴),將標籤和另一個QWidget控制項綁定(暫時這麼稱呼),然後當使用快捷鍵時,焦點自動轉到標籤對應的夥伴上面,這樣,提高了用戶交互的便利性。尤其是在進行大量文本輸入時,這種方式很實用。
我們看下面的例子:
本例中,當我們按下快捷鍵"Alt+P"時,焦點自動轉移到密碼輸入框中,其它快捷鍵依次類推。
好了,今天的內容就到這裡了。主要演示了常用控制項QLabel的用法。喜歡Python編程的小夥伴們關注我,後續推出更多關於PyQt控制項相關內容,便於大家建立一個自己的GUI程序界面框架。
轉載請註明出處,百家號:Python高手養成