PyQt5 實現給無邊框widget窗口添加背景圖片
我就廢話不多說了,大家還是直接看代碼吧~
#! /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 創(chuàng)建的窗口有時并不能直接用 setStyleSheet 設置窗口部分樣式
比如背景圖,在Qt Designer 設置好背景圖樣式了 QWidget#Form{ … } 并能看到效果
但轉為 python3 代碼后,運行程序顯示不了這個背景圖
如果樣式使用的是 background-image 就好辦了,
直接使用下面代碼替換,即使用 QPalette 控件重新畫背景圖
palette = QPalette() palette.setBrush(QPalette.Background, QBrush(QPixmap(":/pic/images/sysBackground.jpg"))) self.setPalette(palette)
QSS 背景圖樣式區(qū)別:
background-image: 背景圖,默認原圖大小,窗口空余部分填充此背景圖
border-image: 默認跟隨窗口大小進行拉伸
image: 默認原圖大小,窗口空余部分不補充
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
解決Python 使用h5py加載文件,看不到keys()的問題
今天小編就為大家分享一篇解決Python 使用h5py加載文件,看不到keys()的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02Python多線程Threading、子線程與守護線程實例詳解
這篇文章主要介紹了Python多線程Threading、子線程與守護線程,結合實例形式詳細分析了Python多線程Threading、子線程與守護線程相關概念、原理、用法與操作注意事項,需要的朋友可以參考下2020-03-03