当前位置: 首页 > wzjs >正文

dede网站如何换logo网页导航网站设计

dede网站如何换logo,网页导航网站设计,小程序申请,购物网站开发的背景在 PyQtNode Editor 的开发之旅中,经过前两篇博客对基础环境搭建和核心类结构的探索,我们已经迈出了坚实的步伐。今天,我们将聚焦于node_scene文件,深入解析其中的代码逻辑。这段代码构建了Scene类,它如同整个节点编辑器的 “管理中枢”,承担着组织和协调节点、边等关键元…

在这里插入图片描述在 PyQtNode Editor 的开发之旅中,经过前两篇博客对基础环境搭建和核心类结构的探索,我们已经迈出了坚实的步伐。今天,我们将聚焦于node_scene文件,深入解析其中的代码逻辑。这段代码构建了Scene类,它如同整个节点编辑器的 “管理中枢”,承担着组织和协调节点、边等关键元素的重要职责,是推动编辑器功能运转的核心力量。
首先创建一个node_scene.py文件
导入必要的模块​

from node_graphics_scene import QDMGraphicsScene​


这里从自定义模块 node_graphics_scene 中导入 QDMGraphicsScene 类。QDMGraphicsScene 类通常用于处理图形场景的可视化相关操作,比如绘制背景、管理场景中的图形元素显示等。通过导入这个类,Scene 类可以利用它来实现节点和边在界面上的展示,将逻辑数据与可视化效果进行关联。​
定义 Scene 类​

class Scene:


Scene 类用于管理节点编辑器中的节点和边的逻辑数据,以及与图形场景进行交互。它是整个节点编辑系统中数据管理和协调的核心部分,后续关于节点和边的创建、删除、存储等操作都会围绕这个类展开。​
类的初始化方法​

    def __init__(self):​self.nodes = []​self.edges = []​
​self.scene_width = 64000​self.scene_height = 64000​
​self.initUI()


self.nodes = [] 和 self.edges = []:分别创建了两个空列表,用于存储节点和边的对象。在后续的操作中,当创建新的节点或边时,就会将它们添加到对应的列表中,方便进行统一管理和遍历操作 。​
self.scene_width = 64000 和 self.scene_height = 64000:设置了图形场景的宽度和高度。这两个属性定义了整个节点编辑区域的大小范围,确定了节点和边可以放置的空间。​
self.initUI():调用自定义的 initUI 方法,用于初始化与图形场景相关的设置,将逻辑上的 Scene 类与可视化的图形场景进行关联和配置。​
初始化用户界面方法​

    def initUI(self):​self.grScene = QDMGraphicsScene(self)​self.grScene.setGrScene(self.scene_width, self.scene_height)​
​

self.grScene = QDMGraphicsScene(self):创建了一个 QDMGraphicsScene 类的实例 grScene,并将当前的 Scene 类实例(self)作为参数传递进去。这样做是为了在 QDMGraphicsScene 类中能够获取到与当前逻辑场景相关的信息,实现逻辑与可视化的交互。例如,QDMGraphicsScene 类可能需要根据 Scene 类中的数据来决定如何绘制节点和边。​
self.grScene.setGrScene(self.scene_width, self.scene_height):调用 QDMGraphicsScene 实例的 setGrScene 方法,将之前设置的场景宽度和高度传递进去。这个方法可能会根据传入的尺寸对图形场景进行初始化配置,比如设置场景的边界范围,以便正确显示节点和边。​
节点和边的添加方法​

    def addNode(self, node):​self.nodes.append(node)​
​def addEdge(self, edge):​self.edges.append(edge)​
​

addNode 方法:接收一个 node 参数,将传入的节点对象添加到 self.nodes 列表中。当在节点编辑器中创建新的节点时,就会调用这个方法将新节点纳入到场景的管理中,方便后续对节点进行查找、操作和存储等处理。​
addEdge 方法:与 addNode 方法类似,接收一个 edge 参数,将传入的边对象添加到 self.edges 列表中。在节点之间建立连接关系时,新创建的边就会通过这个方法添加到场景中,实现对边的统一管理。​
节点和边的删除方法​

    def removeNode(self, node):​self.nodes.remove(node)​
​def removeEdge(self, edge):​self.edges.remove(edge)


removeNode 方法:接收一个 node 参数,从 self.nodes 列表中移除指定的节点对象。当需要在节点编辑器中删除某个节点时,调用这个方法可以将该节点从场景的管理中移除,同时后续可能还会触发一些与该节点相关的清理操作,比如删除与该节点连接的边等。​
removeEdge 方法:接收一个 edge 参数,从 self.edges 列表中移除指定的边对象。在断开节点之间的连接时,就会使用这个方法将对应的边从场景中删除,确保场景中的数据与实际的节点连接状态一致。
完整的node_scene文件:

# 从自定义模块node_graphics_scene中导入QDMGraphicsScene类。
# QDMGraphicsScene类通常用于处理图形场景的可视化相关操作,
# 例如绘制场景背景、管理场景中图形元素的显示等,为后续将逻辑数据可视化做准备
from node_graphics_scene import QDMGraphicsScene# 定义Scene类,该类用于管理节点编辑器中的节点和边的逻辑数据,
# 以及与图形场景进行交互,是整个节点编辑系统数据管理和协调的核心部分
class Scene:# 类的初始化方法,在创建Scene类的实例时自动调用,用于初始化对象的属性def __init__(self):# 创建一个空列表,用于存储节点对象。后续创建的节点都将添加到这个列表中,# 方便对节点进行统一管理,如遍历、查找、操作等self.nodes = []# 创建一个空列表,用于存储边对象。与节点列表类似,# 所有创建的边都会存放在这里,便于管理边的相关操作self.edges = []# 设置图形场景的宽度为64000,这个值定义了节点编辑区域在水平方向上的大小范围self.scene_width = 64000# 设置图形场景的高度为64000,确定了节点编辑区域在垂直方向上的大小范围self.scene_height = 64000# 调用initUI方法,用于初始化与图形场景相关的设置,# 建立逻辑场景与可视化图形场景之间的联系self.initUI()# 初始化用户界面的方法,主要负责创建图形场景实例并进行相关配置def initUI(self):# 创建QDMGraphicsScene类的实例grScene,并将当前Scene类的实例self作为参数传入。# 这样做可以使QDMGraphicsScene类获取到与当前逻辑场景相关的信息,# 实现逻辑场景与可视化图形场景之间的交互self.grScene = QDMGraphicsScene(self)# 调用grScene的setGrScene方法,将之前设置的场景宽度和高度传入。# 该方法会根据传入的尺寸对图形场景进行初始化配置,# 比如设置场景的边界范围,以确保节点和边能在正确的区域内显示self.grScene.setGrScene(self.scene_width, self.scene_height)# 向场景中添加节点的方法,接收一个node参数,代表要添加的节点对象def addNode(self, node):# 将传入的节点对象添加到self.nodes列表中,# 从而将新节点纳入到Scene类的管理体系中self.nodes.append(node)# 向场景中添加边的方法,接收一个edge参数,即要添加的边对象def addEdge(self, edge):# 将传入的边对象添加到self.edges列表中,# 实现对新创建边的统一管理self.edges.append(edge)# 从场景中移除节点的方法,接收一个node参数,指定要移除的节点对象def removeNode(self, node):# 从self.nodes列表中移除指定的节点对象,# 在实际应用中,删除节点可能还会引发与该节点相关的其他清理操作,# 以保证数据的一致性和准确性self.nodes.remove(node)# 从场景中移除边的方法,接收一个edge参数,用于指定要移除的边对象def removeEdge(self, edge):# 从self.edges列表中移除指定的边对象,# 确保场景中节点之间的连接关系与实际操作保持一致self.edges.remove(edge)

在node_graphics_scene.py文件中:
初始化原来函数:

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

更改为:

class QDMGraphicsScene(QGraphicsScene):def __init__(self, scene, parent=None):super().__init__(parent)self.scene = scene

并且增加一个函数:

 def setGrScene(self, width, height):self.setSceneRect(-width // 2, -height // 2, width, height)

并且删除原来代码中:

self.scene_width, self.scene_height = 64000, 64000
self.setSceneRect(-self.scene_width//2, -self.scene_height//2, self.scene_width, self.scene_height)

在窗口的node_editor_wnd.py文件中:
首先调用

from node_scene import Scene

将原来的代码中的:

self.grScene = QDMGraphicsScene()

更改为:

    self.scene = Scene()self.grScene = self.scene.grScene

通过以上的步骤:实现了Scene函数的分离。

节点类

创建一个node_graphics_node.py

# 从PyQt5的QtWidgets模块导入所有的类和函数,该模块包含各种用于创建用户界面的组件,如按钮、布局、视图等
from PyQt5.QtWidgets import *
# 从PyQt5的QtCore模块导入所有的类和函数,此模块提供了核心功能,包括信号与槽机制、事件循环、定时器等
from PyQt5

文章转载自:

http://1VILJez4.hkchp.cn
http://5eFJCfZG.hkchp.cn
http://UhJeZGIA.hkchp.cn
http://ZjXhvvAW.hkchp.cn
http://62NcXpby.hkchp.cn
http://DvPVTHmi.hkchp.cn
http://cIxNMtAu.hkchp.cn
http://CK1l5ozz.hkchp.cn
http://bwIE1wlT.hkchp.cn
http://nRU8WCpx.hkchp.cn
http://2DOlRFZP.hkchp.cn
http://d06zurvY.hkchp.cn
http://1L22rjxi.hkchp.cn
http://EnD7dxSK.hkchp.cn
http://CfiPLBm4.hkchp.cn
http://7hyMAi0E.hkchp.cn
http://p5wqqHCD.hkchp.cn
http://nnAvrNde.hkchp.cn
http://Im9WJfLz.hkchp.cn
http://zOOc0doc.hkchp.cn
http://Ut7MnfMH.hkchp.cn
http://PGnMgWVo.hkchp.cn
http://J5g3xCmT.hkchp.cn
http://bH6o5Zu7.hkchp.cn
http://FTvGF7GM.hkchp.cn
http://GGZXCaBu.hkchp.cn
http://ehk57Utd.hkchp.cn
http://199d5Pap.hkchp.cn
http://ld5zEfRw.hkchp.cn
http://8wnzhPvO.hkchp.cn
http://www.dtcms.com/wzjs/691186.html

相关文章:

  • 嘉兴网站制作哪家专业宁波小程序开发
  • 百度站长资源具有品牌的做网站
  • 个人网站seowordpress首页刷新不变
  • 哪个网站空间好国美在线网站建设费用
  • 24什么网站建设网站开发视频教程百度网盘
  • 免费下载ppt模板网站推荐淘宝客怎么建设网站
  • 东莞市专注网站建设公司网页美工设计第一步需要做什么
  • 建网站用的免费软件仪器网站模板
  • 福州公司网站开发手机app多少钱
  • vps打开网站很慢句容网页定制
  • 智恒企业网站管理系统google adsense wordpress 插件
  • 东莞建外贸网站好网站如何推广行业
  • 网站上线前要做哪些准备wordpress 发布插件
  • php网站模板怎么用龙湖建设工程有限公司网站
  • 潍坊企业网站有个网站叫设计什么
  • 单位网站建设意见国内建网站流程
  • 网站如何报备东莞网站关键词优化效果
  • 怎么给自己的网站做排名普通人怎么样做网站
  • 男孩子和男孩子在一起怎么做网站wordpress is admin
  • 珠海做网站设计有哪些wordpress4.3 漏洞
  • 人才网站app建设建议网站设计数据库怎么做
  • 亚马逊网站建设与维护方法分析怎么自己做淘宝客网站
  • DW做的网站加载慢电影网站建设目的
  • wordpress开放多站点做网站应选那个主题
  • 5173游戏交易平台官网网页版wordpress 分类目录seo插件
  • 网站建设深圳亿联时代百度广告联盟官网入口
  • 宁波网站建设推广公司win10一键优化工具
  • 最新73种暴利产品竞价单页网站制作带订单后台系统模板用jsp做的网站源代码
  • wordpress 图片站企业网站建设课程体会
  • 网站优化排名方法云商城24小时自助下单