本文详细介绍如何在 Window 平台上用纯代码方式(不借助 Qt Designer 工具)来开发一个简单的 Qt for Python 入门 GUI 应用程序(含详细的代码解析),让读者有个基本的感觉,供各位 Qt for Python 的初学者们参考。
创新互联专注于薛城网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供薛城营销型网站建设,薛城网站制作、薛城网页设计、薛城网站官网定制、微信小程序服务,打造薛城网络公司原创品牌,更为您提供薛城网站排名全网营销落地服务。
注:本系列将会以 PySide6 为例进行介绍,原则上同样适用于 PyQt6(只需将代码中导入语句的 PySide6 替换为 PyQt6 即可)。
既然开发环境已经准备就绪,那就让我们通过开发一个简单的示例程序来首次探索它。
本示例程序虽然简单,但会涉及到如下内容,希望能帮助初学者对使用 PySide6 开发 Python GUI 应用程序代码框架有个初步的印象。
我们确定该应用程序所设想达到的目的,并给出其原型。
一、示例目标:
本示例目标是创建一个 Python GUI 应用程序,其主窗体中(水平和垂直)居中显示一段蓝色的文本信息,随着窗口的拉伸,该文本大小、颜色保持不变,但其位置仍然在主窗体中保持(水平和垂直)居中。主窗体标题为“PySide6 示例程序”。
二、示例原型:
在进行 GUI 应用程序编码之前,一般建议先勾画出 GUI 框架(窗体及各部件的布局等)。本示例原型如下:
示例原型
一、编辑代码
利用代码编辑器编辑示例代码,并保存为文件(如:C:\MyPySide6\MyPySide6App1.py)。
- from PySide6.QtWidgets import (QApplication, QLabel)
- from PySide6.QtCore import Qt
- app = QApplication([])
- label = QLabel("用 PySide6 开发的第一个 GUI 应用程序!", alignment=Qt.AlignCenter)
- label.setStyleSheet("color: blu e; font: bold; font-size: 15px;")
- label.setWindowTitle("PySide6示例程序1")
- label.show()
- app.exec_()
二、运行程序
从控制台终端通过命令方式(或直接在 Visual Studio Code 上点击主窗体上运行按钮)来运行该示例程序(通常要先进入代码所在目录下):
C:\MyPySide6> python MyPySide6App1.py
顺利的话应该会出现以下程序窗口(可以试着拉伸一下窗口看看效果):
程序运行窗口
怎么样?感觉还不错吧,简简单单8行 Python 代码,就能生成一个看上去还凑合的 GUI 应用程序了。相信可以大大增强您接下来的 Qt for Python 开发之旅信心吧。
4. 代码解析
什么?上面的代码看不懂! 没关系,我们才刚起步,很多知识还没学呢。那下面我就对上述代码进行一个较为详细的解析,希望能帮助您理解和掌握这些代码。
(1)首先,导入相关模块(或类)
- from PySide6.QtWidgets import (QApplication, QLabel)
PySide6 模块中的子模块提供对相关 Qt API 的访问。由于本示例后续代码中会用到 PySide6.QtWidgets.QApplication 类和 PySide6.QtWidgets.QLabel 类,所以要从 PySide6.QtWidgets 模块导入 QApplication 类、QLabel 类。
注:还有其他几种导入方式:
注1:可以根据个人习惯选择具体的导入方式。本人倾向于选择最开始的导入方式。
- # 从PySide6.QtWidgets模块导入所有的类,后续代码可以直接使用相关类
- from PySide6.QtWidgets import *
- # 导入PySide6.QtWidgets模块,后续代码可以直接使用相关类
- import PySide6.QtWidgets
- # 从PySide6库中导入QtWidgets模块,后续代码在使用相关类时,需要加上该类对应的模块名
- from PySide6 import QtWidgets
(2)其次,创建一个应用程序对象
- app = QApplication( [] )
使用 QApplication 类创建一个应用程序实例对象app,括号内的[]表示构造时不含传递参数。
- import sys
- app = QApplication( sys.argv )
(3)接着,创建一个标签对象作为主窗体
- label = QLabel("用 PySide6 开发的第一个 GUI 应用程序!", alignment=Qt.AlignCenter)
- label.setStyleSheet("color: blue; font: bold; font-size: 15px;")
通常会使用 QMainWindow 类、或 QWidget 类或 QDialog 类来创建一个应用程序的主窗体。本示例中为简化直接使用 QLabel 类创建一个标签对象 label 作为本应用程序的主窗体,并在构造时对该标签的内容和对齐方式进行初始化设置,然后使用 QLabel 类的 setStyleSheet() 方法设置标签文本的颜色、粗体和字体大小属性:
(4)再接着,设置主窗体(即标签)标题
- label.setWindowTitle("PySide6 示例程序")
调用 QLabel 类的 setWindowTitle() 方法设置主窗体(即标签)的标题("PySide6 示例程序")。
(5)然后,显示主窗体(即标签)
- label.show()
调用 QLabel 类的 show() 方法来显示主窗体(即标签)。
(6)最后,运行应用程序
- app.exec_()
执行 QApplication 类的 exec_() 方法,将使得 Qt GUI 进入一个主事件循环,直到程序中调用 exit()、quit() 或关闭应用程序的主窗口时才会结束。
注:在主事件循环开始后,它将会接收用户界面事件以及其他事件源的事件,并向相应的窗口进行分发和处理。此外,它还完成 Qt 应用程序的初始化和应用程序运行结束后的善后处理,并提供会话管理。
本系列介绍如何在 Python 中使用 Qt for Python 进行 GUI 应用程序开发。
当前题目:QtforPython学习笔记—应用程序初探
文章转载:http://www.shufengxianlan.com/qtweb/news41/172541.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联