Pyside/Pyqt QLbal设置图片不显示(QLabel无法设置24位深度图片)
作者:互联网
目录
问题
在做Python的UI课设时,希望给登录的Widget界面设置背景图片,网上查到的方法基本都是Mainwindows通过setstyleSheet的方法解决,而我的课设由于有多个界面,想要给其中的子界面设置背景
想到的方法是通过QLabel设置图片(借助QPixmap实现)
从给定fileName的文件构造一个 pixmap
如果文件不存在或格式未知,则像素图将成为空像素图(null)
class Loginfrm(QWidget):
def __init__(self):
super().__init__()
# 动态加载UI文件
self.ui = QUiLoader().load('Ui/LoginFrm.ui')
self.InitUI()
def InitUI(self):
pixmap = QtGui.QPixmap(r'Image\Picture\1.png')
print(pixmap)
# 这里是动态调用UI文件
self.ui.Label_bg.setPixmap(pixmap)
# 如果是静态态调用UI文件
# self.ui.setPixmap(pixmap)
而这个方法一会适用,一会不适用,通过对比发现问题出在图片的位深度上
当读入图片为32位深度时
当读入图片为24位深度时
找到问题在于,QPixmap只能读32位深度的图片
解决方法
解决方法就非常简单了,把图片从24位转成32位
这里就不过多介绍了,非常简单
1.利用QQ或者微信截图
2.利用opencv或PIL
3.先用QFile把文件 全部读取,然后再用loadData()加载
发现这个破bug浪费了一天时间。。。
标签:24,pixmap,文件,self,UI,设置,ui,图片 来源: https://blog.csdn.net/xiepeng1013/article/details/121149072