PyQtNode Editor 第一篇环境配置

在这里插入图片描述

PyQtNode Editor 以其独特的功能和灵活的扩展性,吸引了众多开发者的目光。

这篇博客作为系列开篇,将详细介绍开发 PyQtNode Editor 所需的基础环境、安装步骤,同时深入解读一段简单的 PyQt5 代码,为后续的开发工作奠定基础。

一、开发基础环境介绍

  1. Python​
    Python 是一种高级、解释型的编程语言,以其简洁、易读的语法和丰富的库而闻名。在 PyQtNode Editor 的开发中,Python 作为核心编程语言,负责实现各种逻辑和功能。它的动态类型系统和自动内存管理机制,让开发者能够更专注于业务逻辑的实现,提高开发效率。目前,Python 有 2.x 和 3.x 两个主要版本系列,在开发 PyQtNode Editor 时,推荐使用 Python 3.x 版本,因为它在性能、安全性和新特性上都有显著提升,并且得到了更广泛的支持。​
  2. PyQt5​
    PyQt5 是 Python 编程语言和 Qt 库的成功融合,Qt 是一个跨平台的 C++ 图形用户界面应用程序框架,功能强大且稳定。而 PyQt5 通过提供 Python 绑定,让开发者能够使用 Python 语言轻松创建具有丰富用户界面的应用程序。它包含了大量的模块,涵盖了图形绘制、事件处理、网络通信等多个方面,为开发 PyQtNode Editor 提供了全面的功能支持。无论是创建简单的窗口,还是复杂的交互式界面,PyQt5 都能满足需求。
  3. 开发工具
    PyCharm 是一款专业的 Python 集成开发环境(IDE),它具有强大的代码编辑、调试、智能提示等功能,能够帮助开发者快速定位和解决问题。建议采用Pycharm.

二、基础环境安装步骤

安装python
安装 PyQt5

pip install PyQt5

三、验证安装环境简单的例子

现在我们来详细解读以下这段代码,它是使用 PyQt5 创建一个简单窗口程序的基础示例:

import sys
from PyQt5.QtWidgets import *

if __name__ == '__main__':
    app = QApplication(sys.argv)

    label = QLabel("Hello, PyQt5!")
    label.show()

    sys.exit(app.exec_())

代码详细解释:

  1. 导入模块​
import sys​
from PyQt5.QtWidgets import *


import sys:导入 Python 的sys模块,该模块提供了对 Python 解释器相关变量和函数的访问。在这个程序中,sys.argv用于获取命令行参数,后续会将其传递给QApplication对象,以便应用程序能够接收外部传入的参数信息。​

from PyQt5.QtWidgets import *:从PyQt5.QtWidgets模块中导入所有的类和函数。QtWidgets模块是 PyQt5 中用于创建用户界面元素(如窗口、按钮、标签等)的核心模块。通过这种导入方式,我们可以直接使用QtWidgets模块中的各种类,无需每次都指定完整的模块路径。
2. 主程序入口​

if __name__ == '__main__':


这是 Python 程序的主入口判断语句。当直接运行这个 Python 脚本时,__name__变量的值会被设置为’main’,此时,该条件下的代码块会被执行;而当这个脚本作为模块被其他脚本导入时,__name__变量的值将是模块名,这段代码块就不会被执行。这种机制确保了主程序逻辑只在直接运行脚本时执行,避免了在被导入时不必要的代码执行。​
3. 创建应用程序对象​

app = QApplication(sys.argv)


QApplication类是 PyQt5 应用程序的核心,它管理着应用程序的控制流和主要设置,包括事件处理、应用程序的生命周期等。这里通过传入sys.argv创建了一个QApplication对象app,使得应用程序能够处理命令行传入的参数,例如设置应用程序的名称、图标等信息。在一个 PyQt5 应用程序中,必须且只能有一个QApplication对象。​
4. 创建标签并显示​

​
label = QLabel("Hello, PyQt5!")​
label.show()​
​

label = QLabel(“Hello, PyQt5!”):创建了一个QLabel对象label,QLabel是 PyQt5 中用于显示文本或图像的控件。这里通过传入字符串 “Hello, PyQt5!”,将该文本设置为标签的显示内容。​
label.show():调用show()方法,将创建好的标签控件显示在屏幕上。如果不调用show()方法,控件将不会被绘制和显示。​
5. 进入应用程序主循环并退出​

sys.exit(app.exec_())


app.exec_():启动 PyQt5 应用程序的主循环。在主循环中,应用程序不断地检测和处理各种事件(如鼠标点击、键盘输入等),保持应用程序的运行状态,直到用户关闭所有窗口或显式地退出应用程序。​
sys.exit():当app.exec_()返回时,表示应用程序的主循环结束,此时通过sys.exit()方法来安全地退出 Python 程序。传入app.exec_()的返回值作为sys.exit()的参数,通常app.exec_()返回 0 表示正常退出,其他值表示异常退出,这样可以在程序外部获取应用程序的退出状态,进行进一步的处理。

得到运算结果:
在这里插入图片描述

四、创建窗口以及画布、网格

在 PyQtNode Editor 的开发过程中,我们常常需要自定义图形场景。接下来,就为大家详细解释一段用于创建自定义图形场景的代码

创建一个node_graphics_scene.py文件:

4.1 导入必要的模块

import math
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

这部分代码就像是我们开工前准备的工具箱。import math 是引入了 Python 里专门用来处理数学计算的工具,后面计算网格位置的时候会用到;from PyQt5.QtWidgets import * 是把 PyQt5 里用来搭建各种窗口、按钮这些界面元素的工具全拿了过来;from PyQt5.QtCore import * 则是搬来了管理程序运行、处理事件等核心功能的工具;from PyQt5.QtGui import * 是把负责画画、处理字体这些图形相关的工具也准备好了。

4.2 定义自定义图形场景类

class QDMGraphicsScene(QGraphicsScene):

这里我们定义了一个新的 “东西”,叫做 QDMGraphicsScene 类,它是从 QGraphicsScene 这个已有的类 “继承” 过来的。打个比方,QGraphicsScene 是一辆基础款汽车,我们的 QDMGraphicsScene 就是在这辆基础款汽车上进行改装升级,让它更符合我们开发 PyQtNode Editor 的需求,成为一个自定义的图形场景。

类的初始化方法

def __init__(self, parent=None):
    super().__init__(parent)

    self.gridSize = 20
    self.gridSquares = 5

    self._color_background = QColor("#393939")
    self._color_light = QColor("#2f2f2f")
    self._color_dark = QColor("#292929")`在这里插入代码片`

    self._pen_light = QPen(self._color_light)
    self._pen_light.setWidth(1)
    self._pen_dark = QPen(self._color_dark)
    self._pen_dark.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值