赞
踩
目录
三、PyCharm安装外部工具Qt designer和pyuic
QT是一个跨平台C++图形用户界面应用程序开发框架。
PyQt是QT的一组python绑定,是RiverBank(PyQt的开发商)使用SIP方案实现的。PyQt的底层都是C/C++,所以PyQt的运行效率并不差。
PyQt是QT的子集,所以在学习的时候就照着QT的官方文档学习即可。
PyQt中可用的类很多,它们被分成了多个模块,日常使用最多的主要有:
QtCore:包含核心的非GUI相关的类,如信号、时间、文件和目录、各种数据类型、流、网址、MIME类型、线程等
QtWidgets:包含图形组件相关的类,例如按钮、窗体、状态栏、工具栏、滚动条、布局等
QtGui:提供了用于窗口系统集成、事件处理、OpenGL和OpenGL ES集成、2D图形、基本成像、字体和文本的类。这些类由Qt的用户界面技术内部使用,也可以直接使用,例如使用低级OpenGL ES图形API编写应用程序。
在一个GUI程序中,这是核心的两个概念。可以简单的说,一个GUI程序就是一个包含N个窗口的应用。
在PyQt中QApplication是应用,QWidget是窗口。
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()的列表,等等。
它管理应用程序的鼠标光标处理。
QWidget是用户界面的基石,它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自己。每个QWidget都是矩形的,并且按照Z-order进行排序。
未嵌入父QWidget的QWidget称为窗口。通常,窗口有一个窗体和一个标题栏,当然也可以使用合适的window flags创建只有纯窗体的窗口。在Qt中,QMainWindow和QDialog的各种子类是最常见的窗口类型。
QWidget是所有其他界面组件的父类。
下面是一个最简单的GUI程序代码:
- from sys import argv, exit
- from PyQt5.QtWidgets import QApplication, QWidget
-
-
- if __name__ == '__main__':
- app = QApplication(argv)
-
- main_window = QWidget()
- main_window.show()
-
- 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_()可用。
对最新版的PyQt5,QT Designer是不在pyqt5包里面的,需要再单独安装pyqt5-tools包
最新版已经没有designer.exe了,而是pyqt5-tools.exe,带参数designer,启动的就是QT Designer了。
这里对$ProjectFileDir$做下说明:
这是PyCharm的内置变量,我们点击第6步的 +,就会出现以下界面
每个变量代表什么都有说明。
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。