我就廢話不多說了,大家還是直接看代碼吧~
#! /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_())
補(bǔ)充:PyQt5 設(shè)置QWidget窗口背景圖片問題
QWidget 添加背景圖片問題
QWidget 創(chuàng)建的窗口有時并不能直接用 setStyleSheet 設(shè)置窗口部分樣式
比如背景圖,在Qt Designer 設(shè)置好背景圖樣式了 QWidget#Form{ … } 并能看到效果
但轉(zhuǎn)為 python3 代碼后,運(yùn)行程序顯示不了這個背景圖
如果樣式使用的是 background-image 就好辦了,
直接使用下面代碼替換,即使用 QPalette 控件重新畫背景圖
palette = QPalette()
palette.setBrush(QPalette.Background, QBrush(QPixmap(":/pic/images/sysBackground.jpg")))
self.setPalette(palette)
QSS 背景圖樣式區(qū)別:
background-image: 背景圖,默認(rèn)原圖大小,窗口空余部分填充此背景圖
border-image: 默認(rèn)跟隨窗口大小進(jìn)行拉伸
image: 默認(rèn)原圖大小,窗口空余部分不補(bǔ)充
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 解決PyQt5 無邊框后窗口的移動問題
- Qt無邊框窗口拖拽和陰影的實(shí)現(xiàn)方法
- Qt透明無邊框窗口的實(shí)現(xiàn)示例
- Pyqt實(shí)現(xiàn)無邊框窗口拖動以及窗口大小改變
- PyQt5實(shí)現(xiàn)無邊框窗口的標(biāo)題拖動和窗口縮放
- Python開發(fā)之QT解決無邊框界面拖動卡屏問題(附帶源碼)