当前位置:   article > 正文

PyQt入门(1)-PyQt的简单介绍

pyqt

目录

一、什么是PyQt

二、应用和窗口

1. QApplication

2. QWidget

三、PyCharm安装外部工具Qt designer和pyuic

1. QT Designer

2. pyuic


一、什么是PyQt

QT是一个跨平台C++图形用户界面应用程序开发框架。

PyQt是QT的一组python绑定,是RiverBank(PyQt的开发商)使用SIP方案实现的。PyQt的底层都是C/C++,所以PyQt的运行效率并不差。

PyQt是QT的子集,所以在学习的时候就照着QT的官方文档学习即可。

QT官方文档

PyQt中可用的类很多,它们被分成了多个模块,日常使用最多的主要有:

QtCore:包含核心的非GUI相关的类,如信号、时间、文件和目录、各种数据类型、流、网址、MIME类型、线程等

QtWidgets:包含图形组件相关的类,例如按钮、窗体、状态栏、工具栏、滚动条、布局等

QtGui:提供了用于窗口系统集成、事件处理、OpenGL和OpenGL ES集成、2D图形、基本成像、字体和文本的类。这些类由Qt的用户界面技术内部使用,也可以直接使用,例如使用低级OpenGL ES图形API编写应用程序。

QT模块集合

二、应用和窗口

在一个GUI程序中,这是核心的两个概念。可以简单的说,一个GUI程序就是一个包含N个窗口的应用。

在PyQt中QApplication是应用,QWidget是窗口。

1. QApplication

QApplication继承自QGuiApplication,专门为QGuiApplication提供基于QWidget的应用程序所需的一些功能,处理特定于QWidget的初始化。

对于任何使用Qt的GUI应用程序,无论应用程序在任何给定时间是否具有0、1、2或更多窗口,都有且只有一个QApplication对象。对于非基于QWidget的Qt应用程序,请改用QGuiApplication,因为它不依赖于QtWidgets库。

一些GUI应用程序提供了一种特殊的批处理模式,即在没有手动干预的情况下为执行任务提供命令行参数。在这种非GUI模式下,实例化一个普通的QCoreApplication通常就足够了,以避免不必要地初始化图形用户界面所需的资源。

QApplication的主要职责范围是

它使用用户的桌面设置初始化应用程序,如palette()、font()和doubleClickInterval()。它会跟踪这些属性,以防用户全局更改桌面,例如通过某种控制面板。

它执行事件处理,这意味着它从底层窗口系统接收事件,并将它们分派到相关的QWidget。通过使用sendEvent()和postEvent(),您可以将自己的事件发送到小部件。

它解析常见的命令行参数,并相应地设置其内部状态。

它定义了应用程序的外观,并将其封装在一个QStyle对象中。这可以在运行时使用setStyle()进行更改

它提供了用户可以通过translate()看到的字符串的本地化。

它提供了一些好用的对象,比如desktop()和clipboard()。

它知道应用程序的窗口。您可以使用widgetAt()询问哪个Qwidget位于某个位置,获取topLevelWidgets()和closeAllWindows()的列表,等等。

它管理应用程序的鼠标光标处理。

QApplication详细介绍

2. QWidget

QWidget是用户界面的基石,它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自己。每个QWidget都是矩形的,并且按照Z-order进行排序。

未嵌入父QWidget的QWidget称为窗口。通常,窗口有一个窗体和一个标题栏,当然也可以使用合适的window flags创建只有纯窗体的窗口。在Qt中,QMainWindowQDialog的各种子类是最常见的窗口类型。

QWidget是所有其他界面组件的父类。

QWidget详细介绍

下面是一个最简单的GUI程序代码:

  1. from sys import argv, exit
  2. from PyQt5.QtWidgets import QApplication, QWidget
  3. if __name__ == '__main__':
  4. app = QApplication(argv)
  5. main_window = QWidget()
  6. main_window.show()
  7. exit(app.exec_())

 代码说明:

app = QApplication(argv)  :根据命令行参数实例化一个QApplication


main_window = QWidget():

main_window.show()  : 创建一个窗口并显示

app.exec_()  :执行应用的主循环

exit()  : 退出GUI程序

这里说下app.exec()和app.exec_()的区别:

在 Python 3 之前,exec是个保留的关键字,因此 PyQt 开发人员为其添加了下划线。从 Python 3 开始,exec不再是关键字了,因此在 PyQt5 中提供不带下划线的版本以与 C++ 文档保持一致是有意义的,但保留exec_()以实现向后兼容性。所以对于带有 Python 3 的 PyQt5,exec()和exec_()是相同的。对于较旧的 PyQt,只有exec_()可用。

三、PyCharm安装外部工具Qt designer和pyuic

1. QT Designer

对最新版的PyQt5,QT Designer是不在pyqt5包里面的,需要再单独安装pyqt5-tools包

 最新版已经没有designer.exe了,而是pyqt5-tools.exe,带参数designer,启动的就是QT Designer了。

这里对$ProjectFileDir$做下说明:

这是PyCharm的内置变量,我们点击第6步的 +,就会出现以下界面

 每个变量代表什么都有说明。

2. pyuic

pyuic的作用是把QT Designer生成的ui文件转换成py文件,具体配置步骤如下

 这个工具并不是一个独立的exe,其实是用python执行PyQt5.uic.pyuic模块,整个命令格式是:

python -m PyQt5.uic.pyuic xxx.ui -o xxx.py

所PyCharm中配置的完整参数就是:

-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/100608
推荐阅读
相关标签
  

闽ICP备14008679号