PyQt中QLabel背景與字型的一些設定

2021-07-02 05:30:13 字數 2593 閱讀 6369

一般來說,對qlabel的背景和字型設定的話,有兩種方法:一種是使用樣式表,就是stypesheet,另一種就是不使用樣式表了。

首先來說不實用樣式表的方法,這種方法相對於樣式表來說比較靈活,但是設定起來比較麻煩,但是作為一名qt程式猿來說,也是必須要會熟練使用了。當然,我下面要總結的必然也是些不是很完整,很成熟的方法,只是經過本人測試可用的管窺之見,用於不用,全在念間。廢話不多說,先看一段**,根據這段**由我一一說下:

#coding:utf-8

'''created on 2023年2月9日

@author: guowu

'''import sys

from pyqt4.qtcore import qt

#import classblock

class mainwindow(qmainwindow):

def __init__(self, parent=none):

qmainwindow.__init__(self, parent)

self.setfixedsize(600,600)

self.label = qlabel(self)

self.label.setfixedwidth(400)

self.label.setfixedheight(400)

self.label.setalignment(qt.aligncenter)

self.label.settext(u"這個標籤的長褲可以變化嗎aaaaaaaa東西南北?")

pe = qpalette()

pe.setcolor(qpalette.windowtext,qt.red)

self.label.setautofillbackground(true)

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

#pe.setcolor(qpalette.background,qt.blue)

self.label.setpalette(pe)

self.label.setfont(qfont("roman times",10,qfont.bold))

self.label.move(100,100)

if __name__ == "__main__":

mainwindow = mainwindow()

mainwindow.show()

上面的**:

1,設定labe的字型居中:

self.label.setalignment(qt.aligncenter)
此居中為上下左右居中

2,設定label的背景顏色和字型顏色:

pe = qpalette()

pe.setcolor(qpalette.windowtext,qt.red)#設定字型顏色

self.label.setautofillbackground(true)#設定背景充滿,為設定背景顏色的必要條件

pe.setcolor(qpalette.window,qt.blue)#設定背景顏色

#pe.setcolor(qpalette.background,qt.blue)#設定背景顏色,和上面一行的效果一樣

self.label.setpalette(pe)

顏色如果用rgb表示的話,則rgb的第四個數可以表示透明度,0為透明,255為不透明。

3,設定字型的型別大小和加粗:

self.label.setpixmap(pixmap)將上面的設定背景的**注掉,然後添上以上兩行**,即可為label設定背景,注意路徑要寫正確。這種方式一般要寫到paintevent方法內,否則label的字型內容可能被覆蓋。

5,設定字型的大小和型別等還有另一中方案:

font = qfont()

font.setfamily("helvetica")

fontheight = rect.height()/1

font.setpixelsize(fontheight)

font.setbold(true)

self.label.setfont(font)

以上就是不用樣式表來設定的方法。

如果使用樣式表的話,則就比較簡單了:

添上下面的樣式表,則可設定這個視窗中所有labe的背景顏色,字型顏色大小等,也可以針對每個label進行設定。

self.setstylesheet("qlabel"

"qlabel"

"qlabel:hover")

若使用背景:

則第一行改為:

"qlabel"
這樣設定的話,背景無法自適應大小,需要label去適應的大小。

WinForm中控制項與背景透明

要實現c winform中的控制項與背景的透明,可以通過設定控制項的backcolor屬性為transparent,同時設定其父控制項。因為在c 中,控制項的透明指對父窗體透明。如果不設定parent屬性,那麼控制項將只對form透明,顯示的時候都會把form的背景色 預設為control 重刷一遍...

CSS中的內邊距 box sizing與背景顏色

1.什麼是內邊距 內容區域與邊框之間的距離 特點 會擴大元素邊框所占用的區域。2.語法 padding value 單邊設定 padding top right bottom left value 取值 1.單位可以為 px 2.單位可以為 3.簡潔寫法 padding value 四個方向的內邊距...

SQL中IN與EXISTS關鍵字

偶遇這樣乙個場景,使用in關鍵字進行檢索資料所消耗的時間是使用exists關鍵字進行檢索資料所消耗的時間的接近30倍。一看差距這麼大,查閱了一本sql資料,其中也沒有介紹多少,不過我們可以從其定義中可以領悟到一些差異。1 in關鍵字 該操作符in用於把乙個值與乙個指定列表進行比較,當被比較的值至少與...