溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在pyqt5中設(shè)置窗體透明控件

發(fā)布時(shí)間:2021-03-09 15:19:05 來源:億速云 閱讀:425 作者:Leah 欄目:開發(fā)技術(shù)

怎么在pyqt5中設(shè)置窗體透明控件?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

// 窗體透明,控件不透明
self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool)
self.setAttribute(Qt.WA_TranslucentBackground)

補(bǔ)充:【解決問題】pyqt5設(shè)置窗體透明,而上面的控件不透明

在做軟件的時(shí)候想把QWidget設(shè)置成透明的,我在網(wǎng)上搜了各種答案:

有說設(shè)置qss背景屬性的:background: transparent; 但是這樣就全透明了。如圖3

還有qss里設(shè)置 background:rgba(0,0,0,0.2)也是一樣的,還是會(huì)完全透明

網(wǎng)上查的這些代碼也沒有用:

setWindowOpacity(0.7);
setAttribute(Qt::WA_TranslucentBackground, true);
setAttribute(Qt::WA_TranslucentBackground);

有說用QGraphicsOpacityEffect設(shè)置的:大事難事這樣整個(gè)widget上的控件也透明了,如圖2。

op = QtWidgets.QGraphicsOpacityEffect()
op.setOpacity(0.5)
你的控件.setGraphicsEffect(op)
你的控件.setAutoFillBackground(True)

怎么在pyqt5中設(shè)置窗體透明控件

圖一(原圖) 圖二 圖三

但是我希望工具欄wiget自身透明,而上面的控件保持原狀。吐槽:真是奇了怪了,qss內(nèi)置了那沒多css的屬性,怎么會(huì)沒有一個(gè)不透明度的屬性呢???

于是我想著要不要重疊兩個(gè)widget,下面一個(gè)按照下面的方法半透明,上面的變成全透明然后再放各種控件,理論上應(yīng)該可行,但是這樣太麻煩了我遲遲沒動(dòng)手。

過了一天以后,我靈光一閃!我直接把widget的背景上面放一個(gè)半透明的圖片不就可以了嗎?。∥艺媸莻€(gè)小機(jī)靈鬼! 于是我打開ps弄了一張透明度為50%的白色圖片保存成png模式,然后qss里面設(shè)置一下:

#Tool_Widget{
 border-radius: 10px;
 border-image: url(img/toolbg.png)
}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI