Chinaunix首页 | 论坛 | 博客
  • 博客访问: 229361
  • 博文数量: 14
  • 博客积分: 167
  • 博客等级: 入伍新兵
  • 技术积分: 274
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-29 13:28
文章分类

全部博文(14)

文章存档

2014年(5)

2013年(4)

2012年(5)

我的朋友

分类: Python/Ruby

2014-12-23 17:59:17

最近在Win7上用pyQT5做一个小程序,打算在Label里插入png图片。不过总是遇到QPixmap::scaled: Pixmap is a null pixmap的问题。

实现部分代码如下:
  1. self.OkImage = QImage(":./images/heart.png");
  2. self.WaitImage = QImage(":./images/trash.png");
  3. self.NgImage = QImage(":./images/bad.png");

  4. self.StatusLabel.setPixmap(QPixmap.fromImage(self.WaitImage).scaled(self.StatusLabel.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation));
  5. self.StatusLabel.setPixmap(QPixmap.fromImage(self.OkImage).scaled(self.StatusLabel.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation));
  6. self.StatusLabel.setPixmap(QPixmap.fromImage(self.NgImage).scaled(self.StatusLabel.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation));

查了许久的reference,后来终于在上找到了原因。

python脚本需要以一种它自己的方式,来知道资源文件的路径,解决办法如下:
1、建立一个资源文件,如 images.qrc。
images.qrc的内容如下:
  1. <!DOCTYPE RCC><RCC version ="1.0">
  2.     <qresource prefix="/">
  3.         <file>img/image.png</file>
  4.     </qresource>
  5. </RCC>
我们用 来声明一个图片文件的相对路径;

2、编译资源文件。
pyrcc5 -o images_rc.py images.qrc
这里我用的是pyqt5,所以对应的是pyrcc5,pyqt4对应pyrcc4.

3、在代码中导入images_rc.py
import images_rc

这样,在label.setPixmap的时候,图片文件就不是Null了!!

阅读(27200) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~