Eric6中使用PYQT5在窗口显示图片

Eric6的图形设计界面使用的是PYQT5的工作界面

基本环境,win10,Python3,pyqt5,Eric6

如下图,新建一个窗口,然后拖一个graphics view部件上去,窗口UI完成


接下来是代码:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):

    def setupUi(self, Form):

        Form.setObjectName("Form")

        Form.resize(653, 483)

        self.hxx = QtWidgets.QGraphicsView(Form)

        self.hxx.setGeometry(QtCore.QRect(-5, 1, 661, 481))

        self.hxx.setObjectName("hxx")                               #以上代码是eirc6编译窗口后自动生成的

        self.hxx.scene = QtWidgets.QGraphicsScene()

     #创建一个图片元素的对象

        item=QtWidgets.QGraphicsPixmapItem(p)

          #创建一个变量用于承载加载后的图片

        self.hxx.scene.addItem(item)                                  #将加载后的图片传递给scene对象

        self.hxx.setScene(self.hxx.scene)                             #这个我也不知道是做了个啥

        

        self.retranslateUi(Form)                                           #eirc6编译窗口后自动生成

        QtCore.QMetaObject.connectSlotsByName(Form)#eirc6编译窗口后自动生成


    def retranslateUi(self, Form):

        _translate = QtCore.QCoreApplication.translate

        Form.setWindowTitle(_translate("Form", "Form"))


if __name__ == "__main__":

    import sys

    app = QtWidgets.QApplication(sys.argv)

    Form = QtWidgets.QWidget()                    #以上代码是eirc6编译窗口后自动生成的

    p=QtGui.QPixmap()

    p.load('timg.jpg')                                        #加载图片

    ui = Ui_Form()

    ui.setupUi(Form)

    Form.show()

    sys.exit(app.exec_())

需要注意QGraphicsScene() 与QGraphicsPixmapItem这2个类在qt4中的父类似乎是QtGui,但是在qt5中变成了QtWidgets.对此不是很确定.

我在4.5手册中查到的他们是属于QtGui模块的,但是在用PYTHON3运行文件后出现如下错误:

module 'PyQt5.QtGui' has no attribute 'QGraphicsScene'

手册中的内容是:

QGraphicsScene Class Reference

[QtGui module]

The

QGraphicsScene class provides a surface for managing a large number of 2D graphical items.

最后上代码完成效果图:



本人刚刚学习编程,对代码的注释全部为自己的理解,如有错误,欢迎大佬指正

图片是百度随便搜的一张图,不承担任何商业责任


重要参考http://blog.sina.com.cn/s/blog_9b78c91101019v*n.html

以上是 Eric6中使用PYQT5在窗口显示图片 的全部内容, 来源链接: utcz.com/a/52674.html

回到顶部