返回顶部
首页 > 资讯 > 后端开发 > Python >python编程怎么使用PyQt创建UE蓝图
  • 238
分享到

python编程怎么使用PyQt创建UE蓝图

2023-06-25 11:06:22 238人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“python编程怎么使用PyQt创建UE蓝图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python编程怎么使用PyQt创建UE蓝图”吧!实现思路场地部署:我们需要拥有

这篇文章主要讲解了“python编程怎么使用PyQt创建UE蓝图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python编程怎么使用PyQt创建UE蓝图”吧!

实现思路

场地部署:我们需要拥有一个可以用来画节点的地方!详看我这篇文章QGraphiCSScene、QGraphicsView的基础使用,这篇文章用的也是同样的方法PyQt制作预览窗口(游戏中的小地图)
2、节点创建:我们需要自定义节点,也就是下图中的方框内的东西,主要涉及到的就是Qt中的QGraphicsItem,通过继承这个类来自定义节点样式
3、连线:涉及到的就是Qt中的QGraphicsLineItem,继承这个类,并在paint中自定义连线样式,比如我这里使用的是qt自带的贝塞尔曲线
实现的效果如下,节点之间可以通过端口互相连接

python编程怎么使用PyQt创建UE蓝图

1、场地部署

class EditorView(QGraphicsView):    def __init__(self, parent=None):        super(EditorView, self).__init__(parent)        self.parent = parent        self.scaleFactor = 1        self.lastPos = QPointF()        self.scene = EditorScene(self)        self.setScene(self.scene)        self.setSceneRect(-1 << 30, -1 << 30, 1 << 31, 1 << 31)        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)        self.verticalScrollBar().setEnabled(False)        self.horizontalScrollBar().setEnabled(False)class EditorScene(QGraphicsScene):    def __init__(self, parent=None):        super(EditorScene, self).__init__(parent)def drawBackground(self, painter, rect):pass# 在这里画底图,也就是上面的方格图

2、节点创建

下面是创建节点的主体,就那个黑框框的东西

class nodeItem(QGraphicsItem):    def __init__(self, parent=None):        super(NodeItem, self).__init__(parent)        self.setFlag(QGraphicsItem.ItemIsMovable, True)        self.setFlag(QGraphicsItem.ItemIsSelectable, True)        self.setFlag(QGraphicsItem.ItemSendsGeometryChanges, True)        self.setFlag(QGraphicsItem.ItemIsFocusable, True)        self.nodeName = "Node"        self.width = 150        self.height = 50self.addPort()    def addPort(self):        leftPort = PortItem(self)        leftPort.setPos(5, self.height/2.7)        rightPort = PortItem(self)        rightPort.setPos(self.width-20, self.height/2.7)    def paint(self, painter, style, *args, **kwargs):        brush = QBrush(QColor(0xaa, 0xaa, 0xaa, 0xaa))        painter.setBrush(brush)        pen = QPen()        pen.setWidth(1)        painter.setPen(pen)        painter.drawRect(0, 0, self.width, self.height)        painter.drawText(self.width/2.5, self.height/1.8, self.nodeName)

下面是节点端口的创建

class PortItem(QGraphicsItem):    def __init__(self, parent=None):        super(PortItem, self).__init__(parent)        self.portDiam = 15    def paint(self, painter, style, *args, **kwargs):        portColor = QColor(0x00, 0xaa, 0x00, 0x66)        painter.setBrush(portColor)        pen = QPen()        pen.setColor(portColor)        pen.setWidth(2)        painter.setPen(pen)        painter.drawEllipse(0, 0, self.portDiam, self.portDiam)

在节点NodeItem里面,创建两个端口用于连接

3、连线

①首先是连线类的创建

class LineItem(QGraphicsItem):    def __init__(self, posStart, posEnd, parent=None):        super(LineItem, self).__init__(parent)        self.setFlag(QGraphicsItem.ItemIsSelectable, True)        self.setFlag(QGraphicsItem.ItemSendsGeometryChanges, True)        self.setFlag(QGraphicsItem.ItemIsFocusable, True)        self.posStart = posStart        self.posEnd = posEnd    def paint(self, painter, style, *args, **kwargs):        midPos = (self.posStart + self.posEnd)/2        lineColor = QColor(0xff, 0x00, 0x00, 0xff)        pen = QPen()        pen.setColor(lineColor)        pen.setWidth(2)        painter.setPen(pen)        linePath = QPainterPath()        linePath.moveTo(self.posStart)        linePath.cubicTo(QPointF(midPos.x(), self.posStart.y()), midPos, self.posEnd)        painter.drawPath(linePath)

②如何连接节点

def mouseReleaseEvent(self, event):self.line = LineItem(self.portPosStart, self.portPosEnd)    self.scene.addItem(self.line)

ps写在最后,如果你的图没有刷新,你可以先把窗口缩小再打开,他就会刷新了,如果你想让他自动刷新,就调用scene.update()方法吧!

感谢各位的阅读,以上就是“python编程怎么使用PyQt创建UE蓝图”的内容了,经过本文的学习后,相信大家对python编程怎么使用PyQt创建UE蓝图这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: python编程怎么使用PyQt创建UE蓝图

本文链接: https://lsjlt.com/news/304263.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python编程使用PyQt创建UE蓝图
    目录实现思路1、场地部署2、节点创建3、连线①首先是连线类的创建②如何连接节点实现思路 1、场地部署:我们需要拥有一个可以用来画节点的地方!详看我这篇文章QGraphicsScene...
    99+
    2024-04-02
  • python编程怎么使用PyQt创建UE蓝图
    这篇文章主要讲解了“python编程怎么使用PyQt创建UE蓝图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python编程怎么使用PyQt创建UE蓝图”吧!实现思路场地部署:我们需要拥有...
    99+
    2023-06-25
  • 怎么使用python编程创建文件夹
    在Python中,可以使用内置的os模块来创建文件夹。以下是一个简单的示例代码: import os # 指定要创建的文件夹路径 ...
    99+
    2024-04-02
  • python编程使用PyQt制作预览窗口游戏中的小地图
    目录写作思路1、简述实现原理2、部分代码解析①方框的完整代码②编辑界面③预览窗口3、位置同步解析①上下两屏位置同步、编辑屏位置保持不变写作思路 1、简述实现原理 2、部分代码解析 3...
    99+
    2024-04-02
  • win8系统蓝牙怎么使用?win8蓝牙使用图文教程
    现在电脑上也有蓝牙设备,蓝牙是我们平时传输文件最常使用的工具,非常的方便。很多朋友虽然电脑上拥有蓝牙功能但是也不会用,每次用都连接不成功。那么win8系统蓝牙怎么使用?本文将与大家一起分享win8蓝牙使用图文教程,希望能...
    99+
    2023-06-06
    win8系统蓝牙怎么使用 win8蓝牙使用 win8 系统 教程 图文
  • 使用python怎么创建一个GUI程序
    本篇文章为大家展示了使用python怎么创建一个GUI程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬...
    99+
    2023-06-14
  • 怎么在python中使用threading创建线程
    本篇文章为大家展示了怎么在python中使用threading创建线程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究...
    99+
    2023-06-14
  • Python线程池thread pool怎么创建使用
    本文小编为大家详细介绍“Python线程池thread pool怎么创建使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python线程池thread pool怎么创建使用”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-06-30
  • 怎么在Pyqt中使用matplotlib实时画图案
    怎么在Pyqt中使用matplotlib实时画图案?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。运行环境:Python 3.7 + Matplotlib 3.0...
    99+
    2023-06-08
  • Pythpn中怎么构建一个PyQt应用程序
    这篇文章给大家介绍Pythpn中怎么构建一个PyQt应用程序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤1:创建PyQt应用程序对象为了设计本教程的PyQt应用程序,您必须导入所需的Python模块。要设计这个应...
    99+
    2023-06-15
  • Python元组怎么创建使用
    今天小编给大家分享一下Python元组怎么创建使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。元组(Tuple)元组是有序...
    99+
    2023-07-06
  • python怎么创建线程
    Python中创建线程的方法有两种,一种是使用`threading`模块,另一种是继承`Thread`类。使用`threading`...
    99+
    2023-08-15
    python
  • python元组怎么创建和使用
    Python元组是一个不可变的有序序列,可以通过使用圆括号来创建。元组中的元素可以是不同类型的对象,且可以通过索引访问元素。创建元组...
    99+
    2023-10-11
    python
  • python怎么创建并使用模块
    在Python中,创建和使用模块可以通过以下步骤完成:1. 创建模块:在一个文件中定义函数、变量、类等,并将其保存为.py文件。例如...
    99+
    2023-10-10
    python
  • 怎么使用eclipse创建java程序
    首先打开eclipse,点击file依次选择New——Java Project输入project的名称,点finish看到多了一个study,在study上右键单击,依次选择New——Class输入类名,点finish看到已经有了一个jav...
    99+
    2020-06-08
    java入门 eclipse 创建 java 程序
  • C#异步编程Task怎么创建
    这篇文章主要介绍“C#异步编程Task怎么创建”,在日常操作中,相信很多人在C#异步编程Task怎么创建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#异步编程Task怎么创建”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-30
  • Ubuntu下怎么使用Python的pygal库创建SVG矢量图形
    今天小编给大家分享一下Ubuntu下怎么使用Python的pygal库创建SVG矢量图形的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2023-06-28
  • Python使用matplotlib创建Gif动图的思路
    目录1、Matplotlib 简介2、绘制动画正弦和余弦波3、绘制曲面图4、绘制回归图1、Matplotlib 简介 数据可视化有助于更有效地讲述有关数据的故事并使其易于呈现。有时很...
    99+
    2024-04-02
  • 用Python创建简易网站图文教程
    前言 本方法基于web2py框架,使用web2py的完整网站数据包创建简单网站。 web2py 是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有...
    99+
    2024-04-02
  • 简要讲解Python编程中线程的创建与锁的使用
    创建线程 创建线程的两种方法: 1,直接调用threading.Thread来构造thread对象,Thread的参数如下: class threading.Thread(group=None, targe...
    99+
    2022-06-04
    线程 简要 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作