#!/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. 二十六个月Android学习工作总结

    1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍. 2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该功能的运行过程写出来. 3.要有自己的知识库,可以是 ...

  2. IIS无法启动问题的解决

    IIS无法启动,显示“服务并未即使响应启动或控制请求”,我用两种办法都没有解决:1.把IIS卸载重装也不行:2.到服务中world wide web publishing服务也不能启动,提示127错误 ...

  3. windows安装PHP5.4.13 +Apache2.4.4(转)

    下载了PHP5.4.13 +Apache2.4.4,开始在网上下教程. 环境配置遇到的第一个问题就是网上很多教程是针对老版本的PHP和apache,不得不搜了很久才搜到这篇文章. windows安装P ...

  4. 零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月30日周三】

    /Mon *************摘要************** 计划任务 )一次性计划任务 服务:atd 命令:at 服务存放文件:/etc/init.d/atd 系统配置文件:/etc/at. ...

  5. 网页CSS2

    列表与方块 width , hight (top, bottom ,left , right)   只有在决对坐标下才起作用 下面的使用与 ol  ul list-style:none // 取消序号 ...

  6. bootstrap table使用小记

    bootstrap table是一个非常不错的,基于bootstrap的插件,它扩展和丰富了bootstrap表格的操作,如格式化表格,表格选择器,表格工具栏,分页等等. 最近基于bootstrap开 ...

  7. <display:table>属性解释

    参考官方网站:http://www.displaytag.org/1.2/displaytag/tagreference.html 所有属性: cellpadding,cellspacing,clas ...

  8. oracle获得每周,每月,每季度,每年的第一天

    当前年月日 SELECT trunc(sysdate) , trunc(sysdate,'dd') FROM dual   当年第一天 SELECT trunc(sysdate,'yyyy') FRO ...

  9. hdu 4277 USACO ORZ (暴力+set容器判重)

    USACO ORZ Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. js formatString 格式化字符串

    /* 函数:格式化字符串 参数:str:字符串模板: data:数据 调用方式:formatString("api/values/{id}/{name}",{id:101,name ...