• 法语
  • 英语

查看内容

图形界面编程技巧,用Python中PyQt5库快速创建一个

  • 2020-06-30 17:09
  • admin

我们知道,Python中有很多GUI库,这些库在创建应用程序时都很方便,常用的GUI库有tkinter、wxPython、PyQt、Kivy、Pyforms、pyGUI等,比较经典的库有tkinter、wxPython、PyQt。从今天开始,和小伙伴们一起梳理一下关于PyQt创建GUI应用程序的一些知识点和方法。

Qt是1991年由Qt Company开发的一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI应用程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,至此实现了全面支持IOS、Android、WF,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。

PyQt是实现了一个Python模块集,是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac,甚至是Android中。

PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。

PyQt实现了超过300个类库,包含了将近6000多个函数和方法。可谓是博大精深,这个库不仅提供了图形界面的开发,还提供了诸如多线程、网络、数据库、图形渲染等诸多常用功能。比较常用的接口如下:

QtCore模块包含核心的非GUI功能。该模块用于时间、文件和目录、各种数据类型、流、网址、MIME类型、线程或进程。

QtGui模块包含图形组件和相关的类,例如按钮、窗体、状态栏、工具栏、滚动条、位图、颜色、字体等。

QtNetwork模块包含了网络编程的类,这些类允许编写TCP/IP和UDP的客户端和服务器,他们使网络编程更简单,更轻便。

QtSvg模块提供显示的SVG文件的类。可缩放矢量图形(SVG)是一种用于描述二维图形和图形应用程序的XML语言。

我们知道,如果只是创建一个普通的GUI应用程序,上面的这些代码够用了,我们只需要将label控件换成自己应用程序中的控件即可。

前面的内容我们知道,PyCharm提供了一个live template功能,它可以使用简短的字符输入来替代我们输入大段代码内容。因此,我们可以将上述代码制作成一个模板内容,当我们输入“qtt”(打个比方,你可以替换成任意你喜欢的内容),让编译器自动为我们输入上面的这些代码。

按照上面的方法,将这个模板命名为qto,每次创建GUI应用程序时,在PyCharm中输入qto,即可自动为我们输入这一框架。

好了,今天的内容就到这里了,喜欢Python编程的小伙伴们关注我,后续会推出一些关于Python的GUI编程的一些小技巧和知识点。