目次
1. QSS 2. QPalette3 。直接描画
1.ウェイワンQSS
コード:
'''
使用多种方式设置窗口背景色和背景图片
1. QSS
2. QPalette
3. 直接绘制
'''
import sys
from PyQt5.QtWidgets import *
app = QApplication(sys.argv)
win = QMainWindow()
win.setWindowTitle("背景图片")
win.resize(350,250)
win.setObjectName("MainWindow")
# 通过QSS动态修改窗口的背景颜色和背景图片
# ../../ 上级路径的上级路径
win.setStyleSheet("#MainWindow{border-image:url(../../picture/images/python.jpg);}")
win.setStyleSheet("#MainWindow{background-color:yellow}")
win.show()
sys.exit(app.exec())
演算結果:
または
2.ウェイ2Qパレット
コード:
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
app = QApplication(sys.argv)
win = QMainWindow()
win.setWindowTitle("背景图片")
win.resize(350,250)
win.setObjectName("MainWindow")
# 通过QPalette设置背景图片和背景颜色
#palette调色板
palette = QPalette()
#设置画刷
palette.setBrush(QPalette.Background,QBrush(QPixmap("../../picture/images/python.jpg")))
#palette.setColor(QPalette.Background,Qt.red)
win.setPalette(palette)
win.show()
sys.exit(app.exec())
演算結果:
または
3.方法3は直接描画します
コード1:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class Background1(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("绘制背景颜色")
def paintEvent(self, event):
painter = QPainter(self)
painter.setBrush(Qt.yellow)
painter.drawRect(self.rect())
if __name__ == "__main__":
app = QApplication(sys.argv)
form = Background1()
form.show()
sys.exit(app.exec_())
演算結果1:
コード2:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class Background2(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("绘制背景图片")
def paintEvent(self, event):
painter = QPainter(self)
pixmap = QPixmap('../../picture/images/screen1.jpg')
painter.drawPixmap(self.rect(),pixmap)
if __name__ == "__main__":
app = QApplication(sys.argv)
form = Background2()
form.show()
sys.exit(app.exec_())
演算結果2: