PyQt自定義控制項之實現全透明視窗

2021-10-03 19:45:28 字數 2464 閱讀 2522

一般我們設計的普通視窗是這樣子的:

class

mywidget

(qwidget):

def__init__

(self):

super

(mywidget

,self).

__init__()

self

.resize

(320

,240

)# 視窗的大小

self

.setwindowtitle

('test'

)# 視窗標題

self

.setobjectname

('mywidget'

)self

.setstylesheet

("qwidget#mywidget"

)# 給視窗新增個背景顏色

效果如下:

給它加個

class

mywidget

(qwidget):

def__init__

(self):

super

(mywidget

,self).

__init__()

# 視窗設定

self

.resize

(320

,240

)self

.setwindowtitle

('test'

)self

.setobjectname

('mywidget'

)self

.setstylesheet

("qwidget#mywidget"

)# 新增個標籤

self

.label =

qlabel

(self

)self

.label.

setgeometry

(120,80

,66,66

)self

.label.

setpixmap

(qpixmap

('./image/gift.png'

))

效果如下

好了,現在我們要去除整個背景,只留下中間那個

class

mywidget

(qwidget):

'''實現全透明視窗'

''def

__init__

(self):

super

(mywidget

,self).

__init__()

# 去除背景

self

.setwindowflags

(self

.windowflags()

|qt.framelesswindowhint

)self

.setattribute(qt

.wa_translucentbackground

)# 視窗設定

self

.resize

(320

,240

)self

.setwindowtitle

('test'

)self

.setobjectname

('mywidget'

)self

.setstylesheet

("qwidget#mywidget"

)# 新增個標籤

self

.label =

qlabel

(self

)self

.label.

setgeometry

(120,80

,66,66

)self

.label.

setpixmap

(qpixmap

('./image/gift.png'

))

效果如下

這種實現方式主要依靠的是設定視窗的標誌位屬性值

標誌位:qt.framelesswindowhint去除視窗的邊框

屬性值:qt.wa_translucentbackground設定視窗為背景透明

必須要配合這兩個一起使用,否則都無法移除背景

python 沒有控制項 PyQt自定義控制項未顯示

我是pyqt的新手。在 我試圖在乙個類中放入乙個qtableview,這樣我就可以定義它在類中的行為,而不必將它與所有其他 混合,但是當我這樣做時,它就不會顯示出來了。在 這是我學習的準則。它是從 edit table in pyqt using qabstracttablemodel 借來的。稍微...

PyQt5教程 22 自定義控制項

pyqt5擁有豐富的控制項。然而,沒有哪個工具可以提供程式設計師在他們的應用程式中可能需要的所有部件。工具包通常只提供諸如按鈕 文字元件 或滑塊等最常見的控制項。如果有需要一種更專業的控制項,我們必須自己去建立它。自定義控制項是通過使用該工具包提供的繪圖工具建立的。有兩種基本的可行性 程式設計師可以...

DuiLib實現自定義控制項

在duilib中實現自定義控制項,和qt過載類似,也是繼承原有的控制項只不過是要將這個控制項也能在xml中進行使用。當作xml中的乙個節點。下面就看一下我寫的乙個小例子,這個例子是過載了乙個按鈕 cbuttonui 過載cbuttonui的標頭檔案 subcontrol.h ifndef subco...