我就廢話不多說了,大家還是直接看代碼吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#! /usr/bin/env python # -*- coding:utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtCore import Qt from PyQt5.QtGui import QPalette, QBrush, QPixmap class NoBorderWindow(QWidget): def __init__( self ): super ().__init__() self .window_UI() self .drawn() def window_UI( self ): self .resize( 950 , 200 ) self .setWindowFlags(Qt.FramelessWindowHint) def drawn( self ): self .palette = QPalette() self .palette.setBrush(QPalette.Background, QBrush(QPixmap( "./images/bg.gif" ))) self .setPalette( self .palette) if __name__ = = "__main__" : app = QApplication(sys.argv) win = NoBorderWindow() win.show() sys.exit(app.exec_()) |
補充:PyQt5 設置QWidget窗口背景圖片問題
QWidget 添加背景圖片問題
QWidget 創建的窗口有時并不能直接用 setStyleSheet 設置窗口部分樣式
比如背景圖,在Qt Designer 設置好背景圖樣式了 QWidget#Form{ … } 并能看到效果
但轉為 python3 代碼后,運行程序顯示不了這個背景圖
如果樣式使用的是 background-image 就好辦了,
直接使用下面代碼替換,即使用 QPalette 控件重新畫背景圖
1
2
3
|
palette = QPalette() palette.setBrush(QPalette.Background, QBrush(QPixmap( ":/pic/images/sysBackground.jpg" ))) self .setPalette(palette) |
QSS 背景圖樣式區別:
background-image: 背景圖,默認原圖大小,窗口空余部分填充此背景圖
border-image: 默認跟隨窗口大小進行拉伸
image: 默認原圖大小,窗口空余部分不補充
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。
原文鏈接:https://blog.csdn.net/qq_42701005/article/details/105881365