失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python窗体加背景图_第二十三篇 -- 为窗体添加背景图片和图标以及设置窗体透明度...

python窗体加背景图_第二十三篇 -- 为窗体添加背景图片和图标以及设置窗体透明度...

时间:2023-02-04 12:29:04

相关推荐

python窗体加背景图_第二十三篇 -- 为窗体添加背景图片和图标以及设置窗体透明度...

效果图:

play.py

#!/usr/bin/env python#_*_ coding: UTF-8 _*_

"""=================================================

@Project -> File : Operate_system_ModeView_structure -> play.py

@IDE : PyCharm

@Author : zihan

@Date : /5/4 11:16

@Desc :

================================================="""

importsysfrom PyQt5.QtWidgets importQApplication, QWidgetfrom PyQt5.QtGui importQPainter, QPixmapfrom ui_play importUi_FormclassQmyWidget(QWidget):def __init__(self, parent=None):

super().__init__(parent) #调用父类构造函数

self.ui = Ui_Form() #创建UI对象

self.ui.setupUi(self) #构造UI

def paintEvent(self, event): #绘制窗体背景图片

painter =QPainter(self)

pic= QPixmap("background.jpg")

painter.drawPixmap(0, 0, self.width(), self.height(), pic)

super().paintEvent(event)if __name__ == '__main__':

app= QApplication(sys.argv) #创建app

form =QmyWidget()

form.show()

sys.exit(app.exec_())

窗体部分就自己随便画一个窗体,图片用自己喜欢的就行。

值得注意的是paintEvent是每次窗体刷新时都会触发,那么就会带来问题,之前写过一个界面,用到了QTabView和QTreeView,程序会经常的需要进行数据交互,因此时常会触发窗体信号修改TreeView的节点,但是由于窗体更新会触发paintEvent,所以运行过程中TabView的上边沿就老是出现背景图的填充与释放,一闪一闪的,达不到效果,所以针对这种情况,不要用paintEvent函数,只需要在开始为窗体设置一个背景,后来就不管了。方法如下

#设置窗体背景图

palette =QPalette()

palette.setBrush(QPalette.Background, QBrush(QPixmap("./imgs/label.jpg")))

self.setPalette(palette)

这样就不必每次刷新界面就重绘背景图了。

还可以为窗体添加图标,会显示在窗体的左上角

self.setWindowIcon(QIcon(r'F:\2048.jpg'))

设置窗体的透明度

form.setWindowOpacity(0.5)

ok.

如果觉得《python窗体加背景图_第二十三篇 -- 为窗体添加背景图片和图标以及设置窗体透明度...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。