网站logo设计流程,花都定制型网站建设,手机网站建设教程,网站建设瀑布流目录 PyQt5设置QWidget窗口背景图片 QWidget 添加背景图片问题QSS 背景图样式区别PyQt设置窗口背景图像#xff0c;以及图像自适应窗口大小变化 总结 PyQt5设置QWidget窗口背景图片 QWidget 添加背景图片问题
QWidget 创建的窗口有时并不能直接用 setStyleSheet 设置窗口部分…目录 PyQt5设置QWidget窗口背景图片 QWidget 添加背景图片问题QSS 背景图样式区别PyQt设置窗口背景图像以及图像自适应窗口大小变化 总结 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: 默认原图大小窗口空余部分不补充 PyQt设置窗口背景图像以及图像自适应窗口大小变化
第一次用PyQt, 由于之前已经用了一段时间的Python种种原因需要做界面搜了网上很多攻略选择了最简单的一个方法下载PyQt5和pyqt5_tools。具体的配置这里不详细说了。
配置好之后通过如下界面点击Qt Design(自己起的名)调用QT
点击之后创建QtWidgets的界面test是自己起的名 此时点击保存选择当前工程的路径工程目录下会多一个.ui文件此时右击该ui文件 利用pyuic把ui文件转换成Python代码 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 27 28 29 30 from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(“Form”) Form.resize(400, 300) palette QtGui.QPalette() brush QtGui.QBrush(QtGui.QColor(0, 0, 255)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Link, brush) brush QtGui.QBrush(QtGui.QColor(255, 0, 0)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.LinkVisited, brush) brush QtGui.QBrush(QtGui.QColor(255, 85, 0)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Link, brush) brush QtGui.QBrush(QtGui.QColor(255, 0, 0)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.LinkVisited, brush) brush QtGui.QBrush(QtGui.QColor(0, 0, 255)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Link, brush) brush QtGui.QBrush(QtGui.QColor(255, 0, 0)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.LinkVisited, brush) Form.setPalette(palette) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate QtCore.QCoreApplication.translate Form.setWindowTitle(_translate(“Form”, “Form”))
此时新建文件login.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPixmap,QPainter from test import Ui_Form import numpy as np import sys class mywindow(Ui_Form, QWidget): def init(self): super(mywindow, self).init() self.setupUi(self) self.num np.random.randint(10) self.setWindowTitle(‘行人检测) print(self.num) def paintEvent(self, event):# set background_img painter QPainter(self) painter.drawRect(self.rect()) pixmap QPixmap(./img/1.jpg)#换成自己的图片的相对路径 painter.drawPixmap(self.rect(), pixmap) if name ‘main: app QApplication(sys.argv) w mywindow() w.paintEngine() w.show() sys.exit(app.exec_())
结果 全屏