Pyqt4 Qpixmap无法处理Debian Beagleone Black图像

时间:2014-03-06 17:13:04

标签: python pyqt4 qpixmap

我正在尝试使用Debian for BBB的最后一张图片中的两个示例程序。他们在Windows上的常规Xubuntu 13.10发布广告中工作,但我无法确定为什么Qpixmap不能处理此图像。常规小部件工作正常,但Qpixmap没有显示图像。安装的pyqt版本是4.9。

我正在使用的一个例子如下。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-

    import sys
    from PyQt4 import QtGui, QtCore

    class Imagen(QtGui.QWidget):

        def __init__(self):
            super(Example, self).__init__()

            self.initUI()

        def initUI(self):      

            hbox = QtGui.QHBoxLayout(self)
            pixmap = QtGui.QPixmap("test.png")

            lbl = QtGui.QLabel(self)
            lbl.setPixmap(pixmap)

            hbox.addWidget(lbl)
            self.setLayout(hbox)

            self.move(300, 200)
            self.setWindowTitle('Test')
            self.show()        

    def main():

        app = QtGui.QApplication(sys.argv)
        ex = Imagen()
        sys.exit(app.exec_())


    if __name__ == '__main__':
        main()

2 个答案:

答案 0 :(得分:0)

假设您的png和python文件位于同一目录中,请添加以下代码:

导入os.path

import os.path as osp

将以下代码添加到initUI()

...
path = osp.join(osp.direname(__file__), 'test.png')
pixmap = QtGui.QPixmap(path)
...

答案 1 :(得分:0)

相对路径是相对于当前目录的,它不一定与脚本本身所在的目录相同。所以要么使用绝对路径名,要么cd到映像文件所在的目录在运行脚本之前。

但是,如果您有兴趣正确解决此常规问题 ,最好的方法是学习如何使用Qt Resource Systempyrcc tool。这允许您直接在应用程序中嵌入图标(或任何您喜欢的文件),从而完全解决查找文件的任何潜在问题。