#!/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. c++11 : Variadic Macros(变长参宏)

    Variadic macros are function-like macros that contain a variable number of arguments. Remarks   To u ...

  2. Foreach语法

    先看例子: Random rand = new Random(47); float f[] = new float[10]; for(int i = 0; i < 10; i++){ f[i] ...

  3. http发送post请求

    package com.j1.soa.resource.member.oracle.service; import java.io.BufferedReader; import java.io.IOE ...

  4. 当setTimeout遇到闭包

    1: function myTest(){ for(var i=0; i< 5; i++){ setTimeout(console.log(i), 0); } } myTest(); 或者比较正 ...

  5. oracle 优化——索引与组合索引

    1.索引结构.第一张图是索引的官方图解,右侧是存储方式的图解. 图中很清晰的展示了索引存储的状况. 在leaf 节点中存储了一列,索引所对应项的 :值,rowId,长度,头信息(控制信息) 这样我们就 ...

  6. Oracle 执行计划(Explain Plan)

    如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题. 如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本可以 ...

  7. MFC 点击改变文本 加法计时器 伸缩窗体

    1.添加所需控件,设置ID:labNum1,txtNum1.txtNum2.txtNum3.btnAdd,并将labNum1的属性Notify->true(控件在被单击或双击时可以发送消息) 2 ...

  8. 汇编语言中PTR的含义(转载)

    mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,所以没有必要加“WORD” mov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数 ...

  9. Magento资源问题上CDN方案研究

    通过对Magento的了解,发现Magento的资源文件主要分布在media.js.skin三个文件夹里,media文件夹主要包括了系统自带编辑器WYSIWYG Editor 所有编辑器涉及到的资源( ...

  10. jquery1.9学习笔记 之层级选择器(二)

    子孙选择器(“祖先 子孙”) 描述:选择所有给出祖先选择器的子孙选择器. 例子: 用蓝色虚线边框标记所有表单子孙元素的输入.表单里的输入框用黄色背景. <!doctype html>< ...