- 修改样式表:
- 设置后发现影响所有控件内的背景色
- 事件触发样式:鼠标划过触发样式
- 设置背景图
- 背景图打包。
- py代码中引用
将resources.qrc文件进行转化成py文件
在我们将xxx.ui文件转换成py文件的时候会自动引用resources.qrc -
实际使用中发现:background-image:url()只能非png的图片,png无法绘制到窗口QWidget中,而且绘制高清图的时候,程序启动会非常卡。
现在想用一张png图片作为整个窗口的背景图,怎么办呢?
方式一:用一个QLabel组件占满窗口,然后设置QLabel组件的pixmap属性为你的背景图。其他的控件全部放到QLabel组件上面。但是它有一个缺陷,那就是无法再Form上布局,也就无法实现自适应缩放(博主尚未发现有效方法实现布局缩放,知道的读者望评论告知)。
方式二:重写主文件的paintEvent方法(就是继承了ui_xxx.py视图的那个类)【推荐方式】import PySide6.QtGui from PySide6.QtGui import QPainter,QImage from PySide6 import QtWidgets from PySide6.QtWidgets import QApplication from ui_untitled import Ui_Form # 主页面 class Main(QtWidgets.QWidget, Ui_Form): def __init__(self, parent=None): super(Main, self).__init__(parent) self.setupUi(self) def paintEvent(self, event: PySide6.QtGui.QPaintEvent) -> None: q_painter = QPainter(self) q_painter.begin(self) q_painter.drawImage(event.rect(), QImage(":/img/images/1.png")) q_painter.end() if __name__ == '__main__': app = QApplication([]) main = Main() main.show() app.exec()
- 尾