PyQt设置窗口背景图像,以及图像自适应窗口大小变化

时间:2024-04-05 07:38:01

PyQt设置窗口背景图像,以及图像自适应窗口大小变化

第一次用PyQt, 由于之前已经用了一段时间的Python,种种原因需要做界面,搜了网上很多攻略,选择了最简单的一个方法,下载PyQt5和pyqt5_tools。具体的配置这里不详细说了。配置好之后通过如下界面点击Qt Design(自己起的名)调用QT:

点击之后创建QtWidgets的界面(test是自己起的名):
PyQt设置窗口背景图像,以及图像自适应窗口大小变化
此时点击保存,选择当前工程的路径,工程目录下会多一个.ui文件,此时右击该ui文件:
PyQt设置窗口背景图像,以及图像自适应窗口大小变化

利用pyuic把ui文件转换成Python代码:

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
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_())
结果:
PyQt设置窗口背景图像,以及图像自适应窗口大小变化
全屏:
PyQt设置窗口背景图像,以及图像自适应窗口大小变化
由于第一次写博客,对格式不了解,尴尬,以上程序可能存在空格缩进问题,这个可以很简单,可以自行调整。另外,文中所有代码(黑框之外也算)都要复制。