#!/usr/bin/env python

# coding: utf-8

from PyQt4.QtGui import *

from PyQt4.QtCore import *

rad = 5

class Node(QGraphicsEllipseItem):

def __init__(self, path, index):

super(Node, self).__init__(-rad, -rad, 2*rad, 2*rad)

self.rad = rad

self.path = path

self.index = index

self.setZValue(1)

self.setFlag(QGraphicsItem.ItemIsMovable)

self.setFlag(QGraphicsItem.ItemSendsGeometryChanges)

self.setBrush(Qt.green)

def itemChange(self, change, value):

if change == QGraphicsItem.ItemPositionChange:

self.path.updateElement(self.index, value.toPointF())

return QGraphicsEllipseItem.itemChange(self, change, value)

class Path(QGraphicsPathItem):

def __init__(self, path, scene):

super(Path, self).__init__(path)

for i in xrange(path.elementCount()):

node = Node(self, i)

node.setPos(QPointF(path.elementAt(i)))

scene.addItem(node)

self.setPen(QPen(Qt.red, 1.75))

def updateElement(self, index, pos):

path.setElementPositionAt(index, pos.x(), pos.y())

self.setPath(path)

if __name__ == "__main__":

app = QApplication([])

path = QPainterPath()

path.moveTo(0,0)

path.cubicTo(-30, 70, 35, 115, 100, 100);

path.lineTo(200, 100);

path.cubicTo(200, 30, 150, -35, 60, -30);

scene = QGraphicsScene()

scene.addItem(Path(path, scene))

view = QGraphicsView(scene)

view.setRenderHint(QPainter.Antialiasing)

view.resize(600, 400)

view.show()

app.exec_()

pyqt node节点1的更多相关文章

  1. Node节点

    1.Node:节点元素节点->HTML标签文本节点->文字 但是在标准浏览器(除了IE6~8)中会把空格和换行都当做文本节点来处理注释节点->注释document2.节点的特征元素节 ...

  2. 层次节点——NODE节点

    1.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  3. Kubernetes移除node节点

    1.kubectl delete node {{节点名称}} 2.删除node节点上由kubelet自动生成的kubelet.kubeconfig配置文件,和ssl密钥证书kubelet.key,ku ...

  4. 二进制安装 kubernetes 1.12(四) - 部署 Node 节点组件

    在 master 上操作 vi /etc/profile export PATH=/opt/kubernetes/bin:$PATH source /etc/profile 将 kubelet-boo ...

  5. Kubernetes集群部署之五node节点部署

    Node节点是Kubernetes集群中的工作负载节点.每个node都会被master分配一些工作负载,每个node节点都运行以下关键服务进程.Kubelet :负责pod对应的容器的创建.启停等任务 ...

  6. NodePort 只能在node节点上访问,外部无法访问

    创建了一个NodePort类型的jenkins service,node port 30000,node节点ip为192.168.56.101, 在node节点上通过浏览器能正常访问http://19 ...

  7. kubernetes集群搭建(4):node节点安装

    下列所有操作需要在所有node节点上操作,并注意红色部分的修改 1.node节点不需要安装etcd来存储相关信息 yum -y install flannel kubernetes 2.修改flann ...

  8. 08-部署node节点

    部署kubernetes node节点 kubernetes node 节点包含如下组件: Flanneld: 省略,参照之前部署的文档 Docker1.12.5: 省略,参照之前部署的文档 kube ...

  9. k8s集群添加node节点(使用kubeadm搭建的集群)

    1.安装docker.kubelet.kubectl.kubeadm.socat # cat kubernets.repo[kubernetes]name=Kubernetesbaseurl=http ...

随机推荐

  1. Showing 2 changed files with 3 additions and 3 deletions.

    4  lib/matplotlib/__init__.py View   @@ -126,9 +126,9 @@ def compare_versions(a, b):     else: ...

  2. Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递

    http://niuzhenxin.iteye.com/blog/1706203   Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...

  3. [ES6] Objects create-shorthand && Destructuring

    Creating Object: Example 1: let name = "Brook"; let totalReplies = 249; let avatar = " ...

  4. NS2仿真:使用NS仿真软件模拟简单网络模型

    NS2仿真实验报告1 实验名称:使用NS仿真软件模拟简单网络模型 实验日期:2015年3月2日~2015年3月7日 实验报告日期:2015年3月8日 一.实验环境(网络平台,操作系统,网络拓扑图) 运 ...

  5. springmvc入门详解

    首先,我们先写一个入门小案例,先熟悉一下springmvc是什么,了解一下springmvc的运行流程,对加强springmvc的深层理解有很大帮助 .第一步,创建一个maven项目: <?xm ...

  6. java 上传文件

    public static boolean upload(File file, String savepath, String loginNo, String filename) { boolean ...

  7. Struts2:ValueStack

    一.ValueStack     1 .ValueStack是一个接口,在struts2中使用OGNL(Object-Graph Navigation Language)表达式实际上是使用       ...

  8. ON UPDATE CURRENT_TIMESTAMP

    CREATE TABLE time1 (   id SMALLINT,   time1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TI ...

  9. 为CKEDITOR内容中图片加上 图片服务器路径

    做网站的时候,前台和后台是分开的, 用了CKEDITOR上传图片,但是发现内容带图片的时候,前台Web浏览的时候是一个红X,一看路径不对,上传的到数据库中的是相对的虚拟路径,例如:<img al ...

  10. 在PHP中开启CURL扩展,使其支持curl()函数

    在用PHP开发CMS的时候,要用到PHP的curl函数,默认状态下,这个函数需要开启CURL扩展,有主机使用权的,可通过PHP.ini文件开启本扩展,方法如下: 1.打开php.ini,定位到;ext ...