Python语言系统学习5:构建PyQt集成开发环境

 

一、PyQt介绍

Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。

PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。 PyQt采用双许可证,开发人员可以选择GPL和商业许可。

二、安装SIP(新版不用安装

Python的一个特性是,它具有强大的功能,它能够使用C或C++编写的现有库,并使它们成为Python扩展模块。这种扩展模块通常被称为库的绑定。SIP是一种工具,它可以很容易地为C和C++库创建Python绑定。它最初是为了创建PyQT,用于Qt工具包的Python绑定,但是现在可以用来为任何C或C++库创建绑定。

SIP包括代码生成器和Python模块。代码生成器处理一组规范文件并生成C或C++代码,然后编译它们以创建绑定扩展模块。SIP Python模块为自动生成的代码提供支持功能。规范文件包含C或C++库接口的描述,即类、方法、函数和变量。规范文件的格式与C或C++头文件几乎相同,因此创建规范文件最简单的方法是编辑相应的头文件。SIP使得在生产性解释编程环境中很容易开发现有的C或C++库。SIP还可以轻松地使用Python应用程序(可能是原型),并在C或C++中有选择地实现应用程序的一部分(可能出于性能原因)。

SIP的安装相对比较简单,我们只需要使用pip install sip命令即可,如下图所示。

三、安装PyQt5(可加入镜像pip install PyQt5 -i https://pypi.douban.com/simple

1、我们可以使用pip install pyqt5命令进行pyqt的安装,如下图所示。

2、接下来,我们还需安装相应的工具集,可以使用pip install pyqt5-tools命令,如下图所示。

四、在Visual Studio Code中配置PyQt5

1、打开Visual Studio Code应用程序,点击扩展按钮,如下图所示。

2、在搜索栏中输入PyQt,会出现如下图所示的扩展。

3、我们安装PYQT Integration即可,安装后的效果如下图所示。

4、PyQt带有一个GUI设计程序,名为designer.exe,具体位置如下图所示。(新版位置有变动D:\Program Files\Python\Lib\site-packages\pyqt5_tools\Qt\bin,需使用360安装补充dll文件,并复制plugins下的内容到bin的相应文件夹下

5、通过“文件-首选项-设置”,对PyQt进行进一步的设置,如下图所示。

6、接下来,我们选择“用户设置-PYQT Integration-Qtdesigner:Path"中输入步骤4确认的路径,我的计算机的路经为:C:\Program Files\Python37\Lib\site-packages\pyqt5_tools\designer.exe。 

7、至此,Visual Studio Code对PyQt的设置已经完成。

五、运行第1个GUI应用程序

1、在工作目录中,建立文件夹ex02。

2、在Visual Studio Code中打开ex02文件夹。

3、在”资源管理器“面板中,点击右键,在弹出的快捷菜单中选择”PYQT:New Form“,如下图所示。

4、调用上述命令后,Visual Studio Code会启动Qt Designer应用程序,用于GUI设计。

5、在Qt Designer应用程序中,点击new按钮,如下图所示,建立新的Form。

6、在接下来弹出的对话框中,我们选择Main Window,然后点击Create按钮进行建立。

7、生成Form后,我们适当调整其大小,如下图所示。

8、上述设置完毕后,我们可以点击save按钮,对Form进行存盘,文件名起为MainWindow.ui。

9、回到Visual Studio Code开发环境,我们可以看到我们刚刚建立的Form文件。

10、如果此时打开MainWindow.ui文件,则可发现其由XML语言完成,如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>300</width>
    <height>200</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget"/>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>300</width>
     <height>23</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

11、为了将其转换为Python语言,我们还需进行编译,方法为:用右键点击MainWindow.ui文件,在弹出的菜单中选择Compile Form。

12、正确编译后,会出现Ui_MainWindow.py文件,如下图所示。

13、Ui_MainWindow.py文件已经转换为Python语言,如下所示。

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

# Form implementation generated from reading ui file 'd:\project\study\Python\2019教学\ex02\MainWindow.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(300, 200)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 300, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

14、此时程序还不能直接运行,我们还需加入入口程序,如下所示。

if __name__ == "__main__":
   import sys
   app = QtWidgets.QApplication(sys.argv)
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
   sys.exit(app.exec_())

15、上述均设置完毕后,我们可以对文件进行存盘,然后点击F5即可运行程序,效果如下。

16、至此,PyQt集成开发环境全部搭建完毕。

 

任何问题,只需在此文章的评论处留言即可,我将尽力解答,不要试图采用其它的联系方式,我一概不理会。

原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。

 

 

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snmplink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值