QLabel

2022-09-22 08:46:51 字數 4233 閱讀 4812

qlabel物件作為一個佔位符可以顯示不可編輯的文字或,也可以防止一個gif動畫,還可以被用作提示標記為其他控制元件。純文字、連結或富文字可以顯示在標籤上。

qlabel是介面中的標籤類,它繼承自qframe類。qlabel類的繼承結構如下:

qobject <—— qpaintdevice <—— qwidget <—— qframe <—— qlabel

qlabel類中的常用方法

setalignment()           按固定值方式對齊文字:

qt.alignleft, 水平方向靠左對齊

qt.alignright,水平方向靠右對齊

qt.aligncenter,水平方向居中對齊

qt.alignjustify,水平方向調整間距兩端對齊

qt.aligntop,垂直方向靠上對齊

qt.alignbottom,垂直方向靠下對齊

qt.alignvcenter,垂直方向居中對齊

setindent()                 設定文字縮排值

setpixmap()               設定qlabel的文字內容

text()                          獲得qlabel的文字內容

settext()                    設定qlabel的文字內容

selectedtext()            返回所選擇的字元

setbuddy()                設定qlabel的助記符及buddy(夥伴),即使用qlable設定快捷鍵,會在快捷鍵後將焦點設定到其buddy上,這裡用到了qlabel的互動控制元件功能。此外,buddy可以是任何一個widget控制元件。使用setbuddy(qwidget*)設定,其qlabel必須是文字內容,並且使用“&”符號設定了助記符

setwordwrap()         設定是否允許換行

qlabel類中的常用訊號

linkactivated                   當單擊標籤中嵌入的超連結,希望在新視窗中開啟這個超連結時,setopenexternalllinks特性必須設定為true

linkhovered                    當滑鼠指標滑過標籤中嵌入的超連結時,需要用槽函式與這個訊號進行繫結

案例7  顯示qlabel標籤

import

sysfrom pyqt5.qtwidgets import

from pyqt5.qtcore import

qtfrom pyqt5.qtgui import

qpixmap, qpalette

class

windowdemo(qwidget):

def__init__

(self):

super().

__init__

() label1 =qlabel(self)

label2 =qlabel(self)

label3 =qlabel(self)

label4 =qlabel(self)

#1. 初始化標籤控制元件

label1.settext("

這是一個文字標籤")

label1.setautofillbackground(true)

palette =qpalette()

palette.setcolor(qpalette.window, qt.blue)

label1.setpalette(palette)

label1.setalignment(qt.aligncenter) # 設定文字標籤居中顯示

label2.settext(

"歡迎使用 python gui 應用")

label3.setalignment(qt.aligncenter)

label3.settooltip(

"這是一個標籤")

label3.setpixmap(qpixmap(

"./images/python.jpg"))

label4.settext(""

) label4.setalignment(qt.aligncenter)

label4.settooltip(

"這是一個超連結標籤")

#2. 在視窗布局中新增控制元件

vbox =qvboxlayout()

vbox.addwidget(label1)

vbox.addstretch()

vbox.addwidget(label2)

vbox.addstretch()

vbox.addwidget(label3)

vbox.addstretch()

vbox.addwidget(label4)

#3. 允許label1控制元件訪問超連結

label1.setopenexternallinks(true)

#開啟允許訪問超連結,預設是不允許,需要使用setopenexternallinks(true)允許瀏覽器訪問超連結

label4.setopenexternallinks(false)

#點選文字框繫結槽事件

label4.linkactivated.connect(self.link_clicked)

#滑過文字框繫結槽事件

label2.linkhovered.connect(self.link_hovered)

label1.settextinteractionflags(qt.textselectablebymouse)

self.setlayout(vbox)

self.setwindowtitle(

"qlabel 例子")

deflink_clicked(self):

print("

當滑鼠點選label-4標籤時,觸發事件。")

deflink_hovered(self):

print("

當滑鼠滑過label-2標籤時,觸發事件。")

if__name__ == "

__main__":

win =windowdemo()

win.show()

案例8 qlabel標籤快捷鍵的使用

import

sysfrom pyqt5.qtwidgets import

from pyqt5.qtcore import

qtfrom pyqt5.qtgui import

qpixmap, qpalette

class

qlabeldemo(qdialog):

def__init__

(self):

super().

__init__

() self.setwindowtitle(

"qlabel 例子")

namelb1 = qlabel("

&name

", self) #

設定了快捷鍵方式

nameed1 =qlineedit(self)

namelb1.setbuddy(nameed1)

namelb2 = qlabel("

&password

", self)

nameed2 =qlineedit(self)

namelb2.setbuddy(nameed2)

btnok = qpushbutton("

&ok"

) btncancel = qpushbutton("

&cancel")

mainlayoout =qgridlayout(self)

mainlayoout.addwidget(namelb1, 0, 0)

mainlayoout.addwidget(nameed1, 0, 1, 1, 2)

mainlayoout.addwidget(namelb2, 1, 0)

mainlayoout.addwidget(nameed2, 1, 1, 1, 2)

mainlayoout.addwidget(btnok, 2, 1)

mainlayoout.addwidget(btncancel, 2, 2)

if__name__ == "

__main__":

labeldemo =qlabeldemo()

labeldemo.show()

QLabel類中的常用方法 訊號

setalignment 按固定值方式對齊文字 setindent 設定文字縮排值 setpixmap 設定qlabel為一個pixmap text 獲得文字內容 settext 設定文字內容 selectedtext 返回所選擇的字元 setbuddy 設定qlabel的助記符和buddy,也就是...

qt5 QLabel標籤控制元件

需要 include qmake qt widgets inherits qframe qlabel 類是 qframe 類的直接子類,因此...