上次,教大家安装了pyqt5, 装了基本的3个插件,若没有安装请看:

 Qt Designer

这个是让你创建ui的一个工具,在Tools 中 External Tools就会有Qt—Designer:

python QT电子书_python

 然后我们进入了ui界面,选择 Main Window, 点击 Create 按钮 :

python QT电子书_python QT电子书_02

然后通过布局,如图所示:

python QT电子书_python QT电子书_03

这里我布局比较多,大家可以尝试最简单的方式,这里简单讲解下图片的加入:

python QT电子书_python QT电子书_04

 通过新建,两种办法,1是已经建好的加载进入,如果是第一次创建的话,选择左边第一个按钮按顺序就会把图片资源加载进去。

python QT电子书_pyqt5_05

 加载后,保存后,工程中就多了个文件:

python QT电子书_python_06

打开这个qrc的文件,我们可以看到是对应的xml,里面就是我们保存的文件。

<RCC>
  <qresource>
    <file>images/12.jpg</file>
  </qresource>
</RCC>

 这个文件后面在讲。然后基本的槽函数可以在这里添加,newClose() 是我自己添加的。

python QT电子书_python QT电子书_07

 选择又上角,通过连线后,我自己添加了一个函数,有关槽函数,在后期会详细的给大家讲解。

python QT电子书_基本操作_08

python QT电子书_pyqt5_09

 保存文件后,你的工程会有下面文件。

python QT电子书_python_10

 第一部分算是做好了,开始下一步了

PyUIC

这个功能,就是让ui变成对应的python的代码。选中这个ui文件,同样在tools 中 选择 PyUIC ,目的是可以把ui对应的转变成py文件。

python QT电子书_pyqt5_11

查看py代码。

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'mianForm.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(718, 580)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget.setGeometry(QtCore.QRect(20, 370, 421, 124))
        self.layoutWidget.setObjectName("layoutWidget")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.layoutWidget)
        self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.doubleSpinBox_draedown_max = QtWidgets.QDoubleSpinBox(self.layoutWidget)
        self.doubleSpinBox_draedown_max.setObjectName("doubleSpinBox_draedown_max")
        self.gridLayout.addWidget(self.doubleSpinBox_draedown_max, 2, 1, 1, 1)
        self.doubleSpinBox_sharp_min = QtWidgets.QDoubleSpinBox(self.layoutWidget)
        self.doubleSpinBox_sharp_min.setObjectName("doubleSpinBox_sharp_min")
        self.gridLayout.addWidget(self.doubleSpinBox_sharp_min, 3, 0, 1, 1)
        self.doubleSpinBox_return_min = QtWidgets.QDoubleSpinBox(self.layoutWidget)
        self.doubleSpinBox_return_min.setObjectName("doubleSpinBox_return_min")
        self.gridLayout.addWidget(self.doubleSpinBox_return_min, 1, 0, 1, 1)
        self.label = QtWidgets.QLabel(self.layoutWidget)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 1, 1, 1)
        self.doubleSpinBox_sharp_max = QtWidgets.QDoubleSpinBox(self.layoutWidget)
        self.doubleSpinBox_sharp_max.setObjectName("doubleSpinBox_sharp_max")
        self.gridLayout.addWidget(self.doubleSpinBox_sharp_max, 3, 1, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.layoutWidget)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
        self.doubleSpinBox_return_max = QtWidgets.QDoubleSpinBox(self.layoutWidget)
        self.doubleSpinBox_return_max.setObjectName("doubleSpinBox_return_max")
        self.gridLayout.addWidget(self.doubleSpinBox_return_max, 1, 1, 1, 1)
        self.doubleSpinBox_drawdown_min = QtWidgets.QDoubleSpinBox(self.layoutWidget)
        self.doubleSpinBox_drawdown_min.setObjectName("doubleSpinBox_drawdown_min")
        self.gridLayout.addWidget(self.doubleSpinBox_drawdown_min, 2, 0, 1, 1)
        self.gridLayout_2.addLayout(self.gridLayout, 0, 2, 1, 1)
        self.pushButton = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton.setMinimumSize(QtCore.QSize(0, 0))
        self.pushButton.setObjectName("pushButton")
        self.gridLayout_2.addWidget(self.pushButton, 0, 5, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout_2.addItem(spacerItem, 0, 1, 1, 1)
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_6 = QtWidgets.QLabel(self.layoutWidget)
        self.label_6.setText("")
        self.label_6.setObjectName("label_6")
        self.verticalLayout.addWidget(self.label_6)
        self.label_3 = QtWidgets.QLabel(self.layoutWidget)
        self.label_3.setObjectName("label_3")
        self.verticalLayout.addWidget(self.label_3)
        self.label_4 = QtWidgets.QLabel(self.layoutWidget)
        self.label_4.setObjectName("label_4")
        self.verticalLayout.addWidget(self.label_4)
        self.label_5 = QtWidgets.QLabel(self.layoutWidget)
        self.label_5.setObjectName("label_5")
        self.verticalLayout.addWidget(self.label_5)
        self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(200, 50, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem1, 0, 4, 1, 1)
        self.closeA = QtWidgets.QPushButton(self.centralwidget)
        self.closeA.setGeometry(QtCore.QRect(460, 410, 61, 41))
        self.closeA.setObjectName("closeA")
        self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 20, 601, 341))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.gridLayoutA = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.gridLayoutA.setContentsMargins(0, 0, 0, 0)
        self.gridLayoutA.setObjectName("gridLayoutA")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(560, 390, 121, 101))
        self.label_7.setText("")
        self.label_7.setPixmap(QtGui.QPixmap(":/images/12.jpg"))
        self.label_7.setObjectName("label_7")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 718, 23))
        self.menubar.setObjectName("menubar")
        self.menu_F = QtWidgets.QMenu(self.menubar)
        self.menu_F.setObjectName("menu_F")
        self.menu_E = QtWidgets.QMenu(self.menubar)
        self.menu_E.setObjectName("menu_E")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.toolBar = QtWidgets.QToolBar(MainWindow)
        self.toolBar.setObjectName("toolBar")
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.fileOpenAction = QtWidgets.QAction(MainWindow)
        self.fileOpenAction.setObjectName("fileOpenAction")
        self.fileNewaction = QtWidgets.QAction(MainWindow)
        self.fileNewaction.setObjectName("fileNewaction")
        self.fileCloseAction = QtWidgets.QAction(MainWindow)
        self.fileCloseAction.setObjectName("fileCloseAction")
        self.addWinAction = QtWidgets.QAction(MainWindow)
        self.addWinAction.setObjectName("addWinAction")
        self.menu_F.addAction(self.fileOpenAction)
        self.menu_F.addAction(self.fileNewaction)
        self.menu_F.addAction(self.fileCloseAction)
        self.menubar.addAction(self.menu_F.menuAction())
        self.menubar.addAction(self.menu_E.menuAction())
        self.toolBar.addAction(self.addWinAction)
        self.label_5.setBuddy(self.doubleSpinBox_sharp_min)

        self.retranslateUi(MainWindow)
        self.closeA.clicked.connect(MainWindow.newClose)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "最大值"))
        self.label_2.setText(_translate("MainWindow", "最小值"))
        self.pushButton.setText(_translate("MainWindow", "开始"))
        self.label_3.setText(_translate("MainWindow", "收益"))
        self.label_4.setText(_translate("MainWindow", "最大回撤"))
        self.label_5.setText(_translate("MainWindow", "sharp比"))
        self.closeA.setText(_translate("MainWindow", "close"))
        self.menu_F.setTitle(_translate("MainWindow", "文件(&F)"))
        self.menu_E.setTitle(_translate("MainWindow", "编辑(&E)"))
        self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
        self.fileOpenAction.setText(_translate("MainWindow", "打开"))
        self.fileOpenAction.setShortcut(_translate("MainWindow", "Alt+O"))
        self.fileNewaction.setText(_translate("MainWindow", "新建"))
        self.fileNewaction.setToolTip(_translate("MainWindow", "新建"))
        self.fileNewaction.setShortcut(_translate("MainWindow", "Alt+N"))
        self.fileCloseAction.setText(_translate("MainWindow", "关闭"))
        self.fileCloseAction.setToolTip(_translate("MainWindow", "关闭"))
        self.fileCloseAction.setShortcut(_translate("MainWindow", "Alt+C"))
        self.addWinAction.setText(_translate("MainWindow", "添加窗体"))
import pic_rc

这就是刚才布局产生的代码,如果你每次改变ui界面数据,同样去操作,这里每次都会更新一下,这里不要自己手写东西。一般我们新建一个文件,通过继承的方式来数据操作逻辑。创建一个layout.py文件,写下如下代码,注意控件的名称,要结合自己的界面的名字。

# -*- coding: utf-8 -*-

import sys
from PyQt5.QtCore import pyqtSlot   #导入槽
from  PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QFileDialog

from mianForm import  Ui_MainWindow

import pic_rc  #导入资源

class LayoutDemo(QMainWindow,Ui_MainWindow):
    """
    class documentation goes here
    """
    def __init__(self):
        super(LayoutDemo,self).__init__()
        self.setupUi(self)


    # @pyqtSlot()   #槽函数定义
    def on_pushButton_clicked(self):
        """
        :return:
        """
        print('收益_Min:',self.doubleSpinBox_return_min.text())
        print('收益_Max:',self.doubleSpinBox_return_max.text())
        print('最大回撤_min:',self.doubleSpinBox_drawdown_min.text())
        print('最大回撤_max:',self.doubleSpinBox_return_max.text())
        print('sharp_min:',self.doubleSpinBox_sharp_min.text())
        print('sharp_max:',self.doubleSpinBox_sharp_max.text())

    def newClose(self):
        QMainWindow.close(self)




if __name__ == "__main__":
    app = QApplication(sys.argv)
    ui = LayoutDemo()
    ui.show()
    sys.exit(app.exec_())

正常情况下,我们运行是成功的,但是qrc发先加载不进来,报错,那是应为我们没有把资源文件变成py文件。

PyRcc

 这个就是让你的qrc文件转换成py文件的功能,同样选中你的qrc文件,同样在tools 中 选择PyRcc,这样就可以转换成py文件了

python QT电子书_Qt_12

打开文件是对应的转化: 

# -*- coding: utf-8 -*-

# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.1)
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore

qt_resource_data = b"\
\x00\x00\x08\x56\
\xff\
\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x48\x00\
\x48\x00\x00\xff\xdb\x00\x43\x00\x1b\x12\x14\x17\x14\x11\x1b\x17\
\x16\x17\x1e\x1c\x1b\x20\x28\x42\x2b\x28\x25\x25\x28\x51\x3a\x3d\
\x30\x42\x60\x55\x65\x64\x5f\x55\x5d\x5b\x6a\x78\x99\x81\x6a\x71\
\x90\x73\x5b\x5d\x85\xb5\x86\x90\x9e\xa3\xab\xad\xab\x67\x80\xbc\
\xc9\xba\xa6\xc7\x99\xa8\xab\xa4\xff\xdb\x00\x43\x01\x1c\x1e\x1e\
\x28\x23\x28\x4e\x2b\x2b\x4e\xa4\x6e\x5d\x6e\xa4\xa4\xa4\xa4\xa4\
\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\
\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\
\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xff\xc0\x00\
\x11\x08\x00\x75\x00\x73\x03\x01\x22\x00\x02\x11\x01\x03\x11\x01\
\xff\xc4\x00\x1a\x00\x00\x02\x03\x01\x01\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x04\x01\x02\x05\x03\x06\xff\xc4\x00\x35\
\x10\x00\x01\x04\x01\x02\x05\x03\x03\x02\x03\x09\x01\x00\x00\x00\
\x00\x01\x00\x02\x03\x04\x11\x05\x21\x12\x13\x31\x41\x51\x22\x71\
\x91\x14\x32\x61\x23\xb1\x33\x81\xc1\x06\x15\x42\x52\x62\x63\x72\
\xd1\xf0\xf1\xff\xc4\x00\x18\x01\x01\x01\x01\x01\x01\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x03\x02\x04\xff\xc4\x00\
\x1c\x11\x01\x01\x00\x02\x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x01\x02\x11\x03\x12\x21\x31\x13\xff\xda\x00\x0c\x03\
\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xdc\xc9\xf2\x51\x93\xe4\xfc\
\xa8\x52\xb9\x51\x93\xe4\xfc\xa3\x27\xc9\xf9\x42\x10\x19\x3e\x4a\
\x9d\xfa\xe4\xa5\x35\x18\x67\x9e\xb1\x65\x69\x4b\x1f\xf8\x38\xe2\
\xfc\x65\x64\xca\xcb\xba\x39\x8e\x5e\x70\x91\xaf\x3b\xb7\x24\x82\
\x7c\x6f\xfb\xaa\x3d\x06\x4f\x93\xf2\x8c\x9f\x27\xe5\x52\x19\x5b\
\x34\x31\xca\xcc\xe1\xe3\x88\x65\x5d\x40\x64\xf9\x3f\x28\xc9\xf2\
\x7e\x50\x84\x06\x4f\x93\xf2\xa7\x7f\x27\xe5\x25\xa8\xc7\x79\xfc\
\x02\x94\x81\x80\x9c\x38\xf4\x23\xf3\x94\xad\x4b\xb6\xa0\xbe\x29\
\x5d\x22\x42\xec\x70\xbc\x75\x05\x06\xb6\x4f\x93\xf2\x8c\x9f\x27\
\xe5\x08\x40\x64\xf9\x3f\x28\x42\x10\x42\x94\x25\x2c\x6a\x75\x2b\
\x4b\xca\x92\x43\xc6\x3a\x86\x8c\xe3\xdd\x03\x68\x54\x86\x58\xe7\
\x8c\x49\x13\xc3\x98\x7a\x10\xae\x81\x1b\xcf\xb3\x30\xe5\xd1\x91\
\xa1\xc1\xdc\x32\x1e\xe3\xd9\x2a\xed\x1a\xcc\xef\x69\xb3\x73\x8c\
\x0f\xc1\x25\x69\xc5\x5e\x38\xa4\x2e\x68\xdc\xf4\xfc\x2e\xdd\x50\
\x51\x8c\x6c\x6c\x6b\x18\x30\x1a\x30\x02\xb2\x52\x6d\x41\x91\x39\
\xc4\xb1\xc6\x36\x6c\xe7\x8e\x80\xa1\x9a\x95\x57\xb8\x0e\x27\xb7\
\x24\x00\x5c\xc2\x07\xca\x6c\x36\x85\x38\x28\xce\xdb\xa0\xcc\xb1\
\x25\x9b\xd2\x35\xb4\x6c\x36\x38\x9b\x90\xf7\x74\x76\x7f\xeb\xd9\
\x15\x34\x91\x0d\x91\x62\x79\x8c\xd2\x03\x90\x48\xee\xb4\x19\x1b\
\x22\xcf\x2d\xbc\x20\xf6\x56\x40\x67\x28\x42\x10\x08\x53\x80\x84\
\x10\x16\x65\xdb\x3a\x5c\x76\x4b\xac\x31\xb2\x4c\x07\x0b\xb0\xdc\
\xff\x00\xe2\x9e\xb5\xcf\xfa\x79\x3e\x9b\x1c\xdc\x7a\x73\xb2\x5f\
\x4f\xad\xfa\x42\x7b\x30\x46\xdb\x0f\xfb\xbd\x3d\x7d\xfc\x1f\x2a\
\x85\x7f\xb3\xe5\xc4\xce\x5a\xd2\xd8\x89\xcb\x7c\x05\xb1\x84\x34\
\x63\x60\x31\xf8\x09\x3b\x32\xcb\x35\x93\x56\x1d\x83\x7e\xf7\x29\
\x6e\x87\x6b\x36\xa2\xac\xdc\xbc\xf1\x38\xf4\x68\xea\x52\xec\xb7\
\x7e\x50\x4b\x29\x32\x31\xfe\xe3\xf0\x57\x46\x41\x0c\x1b\x64\x71\
\x0e\xae\x7a\x4a\xd6\xa6\xf9\x2c\xb2\xbd\x26\x99\x1e\x0f\xa8\xb7\
\xba\xcf\xb5\xbf\x17\x46\x22\xa9\x98\x24\x6d\x80\x1d\xc6\x78\x8b\
\x43\x8e\x02\xe1\x63\xeb\x5c\x78\x5e\x03\xab\x64\x61\xb1\x8c\x90\
\x02\x63\xeb\x5c\xd7\x81\x62\xb4\xb0\xe7\xa1\x38\x2a\xf2\xdc\x6c\
\x4e\x01\x8d\x7c\xcf\x3d\x03\x57\x12\xe5\x2b\xaf\x1d\x29\x5b\x86\
\xdb\x08\x88\x39\x8e\x66\xc5\xae\xea\xbb\x91\x82\xb2\x66\x9e\xc5\
\x79\x39\xe2\x94\x8c\x69\xfb\xb2\x41\xfd\x96\x95\x59\xe3\xb5\x07\
\x32\x23\xee\x0f\x62\xb6\x95\xc2\xe7\xaa\x10\xa1\xce\x6b\x1a\x5c\
\xf7\x06\xb4\x6e\x49\xec\xa8\x94\x25\xa1\xd4\x2a\x4f\x27\x2e\x39\
\x9a\x5e\x7a\x03\xb6\x53\x28\x24\x74\x42\x84\x20\x85\x3d\xd0\x81\
\xd5\x05\x2c\xca\x20\xae\xf9\x33\x83\x8c\x37\xdc\xf4\x5c\x29\xc4\
\xe8\xe2\x2e\x93\x79\x5d\xf7\x9f\xca\x8d\x40\x19\xe6\x8a\xb7\x63\
\xeb\x27\xd9\x4c\xd6\x63\x84\x92\xf3\xd4\x2c\x79\x2b\xbc\x65\xa4\
\x35\x7a\x20\x40\xf9\xdd\x23\xc9\xc8\xc0\xce\xcb\x4f\x4e\xa5\x0d\
\x5a\xed\xe5\x30\x02\xe6\xee\xee\xf9\xf7\x49\xbe\xdd\x7b\x71\x3e\
\x17\x1e\xbd\x15\xe0\xb4\x69\x81\x14\xed\x77\x2f\xb4\x9d\x55\xc3\
\x2d\x7d\x5c\xf1\xb1\xc2\xf6\xa3\x69\xba\x99\xaa\x23\x06\x13\xe9\
\xdc\x75\xfe\x69\xbd\x1a\x36\xb2\xb4\xa1\xbb\x96\xc8\xe6\xe7\x39\
\x5c\xe6\xd4\x9b\x2e\x3e\x9a\x2e\x61\xc6\x04\x8e\x18\x01\x70\xa9\
\x62\x6d\x3d\x85\xb2\x34\x4c\xc7\x12\xe7\x18\xfb\x2d\x2e\x51\xcc\
\xc6\xe9\x6d\x43\x53\xb9\x06\xa6\x2b\xb2\x30\x61\x38\xea\xdc\xe5\
\x5a\x39\xcd\x2d\x4a\x68\x84\x7f\xa4\xe0\x1d\xb7\x6c\xae\xa7\x55\
\xaf\x2e\x1d\x04\x66\x69\x0f\x6c\x63\x87\xf9\x94\x89\xb3\x13\x39\
\xa2\x4f\x54\xd3\x65\xbf\xf1\x4d\x98\xe1\x6b\x70\x8e\xfe\x57\x2b\
\x1c\xae\x43\xf9\xf8\xe5\x63\xd5\xc5\xd3\x0b\x9e\x9d\x29\x9a\x8c\
\x4f\x27\x3b\x63\xe3\x65\xcb\x50\x65\xb9\x65\x8a\x38\x58\xc7\x40\
\xed\xa4\x0f\x19\x07\xdd\x54\xf8\xc6\xbb\x25\x19\x62\x8e\x1a\x10\
\xbc\xc8\x1d\xf7\x00\x72\x57\xa3\x87\x8c\x41\x18\x93\xef\xe1\x1c\
\x5e\xea\xd1\xb1\x91\x30\x32\x26\xb5\xad\x03\x03\x01\x4a\x20\x42\
\x10\x80\x40\xea\x84\x9e\xa1\x7b\xe8\x83\x31\x03\xe5\x73\xce\xdc\
\x3d\x10\x5a\xcb\x9c\xcd\x46\x17\x6d\xc0\xf6\x16\x6f\xe7\xaa\xc9\
\xd5\x4b\xbe\xa0\xb4\xf4\x4f\x73\xa2\xd5\x6b\x96\xb0\x3e\x2b\x10\
\x9e\x30\xc3\xd4\x15\xc3\xf4\xee\xb7\x95\x3e\x61\xb2\xce\xa0\xf7\
\x59\xe5\x1b\xf1\x67\xd6\xb3\x7e\xd7\x02\xd2\xb6\x89\x98\xe9\xf9\
\x66\x38\x88\xee\xb8\xc3\xa5\x86\xbc\x17\xbb\x38\xed\xe5\x69\xb4\
\x06\x80\x00\xe9\xd1\x67\x6c\x6d\xcb\x9c\xca\x78\xc3\x82\xcc\xc2\
\x30\xd7\xc6\xd7\x11\xb1\xf3\xf0\xba\x1b\x2e\x03\xd3\x04\x80\xf9\
\x3e\x90\xb4\x2c\x52\x8a\x77\x71\x9f\x4b\xfc\x85\xc9\xba\x6b\x78\
\x81\x7c\xcf\x70\x1d\x8a\x9d\x99\x76\xf3\x44\xaa\xf3\xcb\xe7\x78\
\x78\xe4\xe3\x71\x8e\xe9\x20\x40\x77\x13\x86\x08\xec\xbd\x23\x22\
\x64\x71\xf0\xb0\x00\xd5\x89\x69\xb5\xdf\x75\xb1\xc0\xfe\xa7\xd6\
\xe7\x1c\x37\xd9\x77\x8d\xdb\xac\x39\x26\x33\xd6\xae\x9a\xf8\xeb\
\xe9\x6c\x7c\xae\x11\xb3\x24\xe5\xc7\x03\xaa\xa9\xd5\xe2\x7e\xd5\
\xe1\x9e\x7f\xcb\x5b\x81\xf2\x57\x2b\xa1\x93\xdb\xab\x55\x85\xae\
\x8e\x26\x19\x08\x1b\x8c\xf4\x0a\xd0\x09\x5b\x08\x6c\xd2\x71\xbc\
\x75\x20\x61\x6e\xca\x63\xda\xed\x78\xb5\x09\x8d\xa8\xa1\x9e\xaf\
\x28\x4a\x48\x69\xe3\xc9\x1e\xe9\xf5\x8e\x24\x89\xba\xb3\x5f\x34\
\x8c\x63\x20\x8f\x39\x71\xc6\xe5\x32\x75\x68\x1d\xb5\x78\xa7\xb1\
\xf9\x63\x36\xf9\x28\xe2\xcf\x4f\xa1\x67\x1b\x97\xc9\xc8\xd3\x46\
\x3f\x33\x0c\xa1\x4d\xc4\xd3\x45\x23\x6a\xd5\x91\x2b\x63\xa5\x03\
\x66\x27\x20\xbc\xbb\x66\x9f\x1f\x84\xf2\x5e\xad\x18\x69\xba\x57\
\x42\x1d\xfa\x87\x24\x13\x95\x50\xa5\x0a\x56\x59\x7e\x4b\x96\xcb\
\x43\xdc\x30\x03\x4f\x55\x5d\x41\x8c\xbd\xaa\x47\x03\x46\x0c\x2d\
\xe2\x96\x46\xf5\x1e\x02\x7a\xed\x96\xd2\xaa\xf9\xdf\xfe\x11\xb0\
\xf2\x7b\x2c\xca\x77\x6a\xd3\xab\x97\x4b\xce\xb1\x29\xe3\x78\x8f\
\xd4\x49\x2b\x9c\xbe\x3a\x8d\x56\xb4\x35\xa0\x0e\xdb\x64\xf5\x52\
\x92\x6e\xab\x5b\x61\x2f\x32\x02\x7b\x48\xc2\x13\x0c\xb7\x5a\x4f\
\xb2\xc4\x4e\x3e\x03\x82\xf3\xdc\x6b\x4d\xaf\x2b\xdc\xc6\x17\x35\
\x8e\x79\x1d\x81\x1b\xa5\x24\xbf\x33\x5a\x48\xa1\x60\xe3\xf0\x3f\
\xa2\x78\x6e\x32\x37\xf6\x42\x4b\xaf\xb1\x18\x87\x52\x75\xb2\x63\
\x96\x41\x45\xbd\xc3\xb2\x5c\x7f\x6c\x2e\xc2\x6a\x71\x07\x45\x5a\
\xb1\xb6\x18\xde\x27\xb9\xa0\x10\x07\xbf\x94\xf5\xe9\x04\x54\xa6\
\x94\xb5\xae\xe1\x69\x20\x38\x65\x74\xd2\xa9\xc7\x5a\x84\x6c\x68\
\x04\xbc\x07\x3c\xe3\xee\x25\x6f\x8c\x97\xd7\x16\xe9\x93\xa6\xcb\
\x5e\x59\xed\x4d\x0f\x0b\x78\x88\x6b\x59\x90\x0e\x3f\xfa\x99\xb1\
\x33\x6b\xd7\x7c\xae\xdf\x84\x74\xf2\x51\xab\xd2\x6d\x78\x63\xb5\
\x5a\x38\x99\xf4\xee\xe2\x70\x0d\xc1\x70\xf7\x5c\x67\x7c\x4e\xb7\
\x45\xf2\x00\x21\x73\x8b\x89\x7e\xcd\xe9\xb6\x56\x8d\x31\xcb\x51\
\x46\xd6\x75\x6b\x50\xcb\x72\x38\xa5\xfa\xa2\x01\x3c\x3f\xc3\x77\
\x60\xb5\xfa\x6c\x36\xfc\x04\x95\xd9\xe3\xbf\x6e\xb5\x7a\xef\xe6\
\x36\x29\x39\xb2\x3d\xbb\x81\x8e\x9b\xa7\x57\x9f\x9a\xa6\x3e\xa1\
\x0a\x50\xb0\xdd\x68\x53\xea\xf5\x09\x36\x8a\x83\x63\x1e\x65\x93\
\xfa\x05\x53\x0e\xa3\x37\xf1\xae\x36\x11\xfe\x58\x1b\xfd\x53\xa8\
\x5a\xde\x6a\xcf\xa1\x36\x69\x75\x41\x0e\x90\x3e\x67\xf9\x95\xc5\
\xc9\x98\xe3\x64\x43\xf4\xd8\xc6\x8f\xf4\xb4\x05\x74\x2c\xee\x76\
\xba\xd4\x0e\x1c\x63\x0e\x00\x8f\x04\x65\x2e\xfa\x35\x24\xfb\xab\
\x45\xef\xc3\x84\xc2\x14\xed\x57\x44\xbf\xba\xab\x34\xe6\x23\x2c\
\x27\xcb\x1e\x42\xb0\xab\x65\x9f\xc3\xbd\x26\x3c\x48\xd0\xe4\xda\
\x15\xfd\x2a\x68\x95\x88\x6e\xcd\x03\xe1\x74\xb0\x39\xaf\x18\x3e\
\x82\x0f\xee\xba\xd5\x9a\xed\x78\x9b\x1c\xb0\xb2\x6e\x11\x80\xe6\
\xbb\x19\xf7\x4c\x21\x75\x39\x6c\x4b\x8c\x25\x70\xde\xbf\x1b\xa0\
\x73\x23\xaf\x03\xbe\xe2\x4f\x13\x88\x55\x8f\x4a\x8f\xd3\xf5\x33\
\x49\x63\x87\xa3\x5d\xb3\x47\xf2\x4f\xa1\x2f\x2d\xa4\xc6\x45\x63\
\x8e\x38\x9b\xc3\x13\x1a\xc6\xf8\x68\xc2\xb2\x10\xb3\xb6\xdf\xae\
\x82\x10\x85\x15\x19\x52\x84\x28\x23\x2a\x72\x84\x20\x11\x84\x21\
\x50\x21\x08\x44\x08\x42\x10\x0a\x32\x84\x28\xa1\x08\x42\x03\x28\
\x42\x10\x7f\xff\xd9\
"

qt_resource_name = b"\
\x00\x06\
\x07\x03\x7d\xc3\
\x00\x69\
\x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\
\x00\x06\
\x03\x45\x51\x67\
\x00\x31\
\x00\x32\x00\x2e\x00\x6a\x00\x70\x00\x67\
"

qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
"

qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x74\xdd\x45\x33\xec\
"

qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
    rcc_version = 1
    qt_resource_struct = qt_resource_struct_v1
else:
    rcc_version = 2
    qt_resource_struct = qt_resource_struct_v2

def qInitResources():
    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)

def qCleanupResources():
    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)

qInitResources()

这个文件你不用管它就好了,现在运行,便可以显示出来了。

python QT电子书_python_13

感谢大家的一键三联。