资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

定义函数画圆Python 画圆的定义

python pyqt怎么画圆

这个例子我做了好几天:

在平顶山等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站设计 网站设计制作按需制作网站,公司网站建设,企业网站建设,品牌网站建设,营销型网站建设,成都外贸网站建设公司,平顶山网站建设费用合理。

1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化

2)网上的PyQt的例子根本运行不了

填了无数个坑,结合二者,终于能完成了一个关于绘图的东西。这个过程也掌握了很多新的知识点

【知识点】

1、关于多个点的使用

poitns = [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)]

请看:

1      # 定义多个点 2      points = [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)] 3  4      # ===直接使用 points 会报错!========= 5      # ... 6      elif self.shape == self.Points: 7            painter.drawPoints(points) 8  9      elif self.shape == self.Polyline:10            painter.drawPolyline(points)11 12      elif self.shape == self.Polygon:13            painter.drawPolygon(points, 4)14 15      # ...16 17      # ===把 points 用 QPolygon()包裹起来才正确!=========18      # ...19      elif self.shape == self.Points:20            painter.drawPoints(QPolygon(points))21 22      elif self.shape == self.Polyline:23            painter.drawPolyline(QPolygon(points))24 25      elif self.shape == self.Polygon:26            painter.drawPolygon(QPolygon(points), 4)27 28      # ...

2、在QDialog窗体中显示QWidget部件

【效果图】

【资源】

【代码】

import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *class StockDialog(QWidget):    def __init__(self, parent=None):

super(StockDialog, self).__init__(parent)

self.setWindowTitle("利用QPainter绘制各种图形")

mainSplitter = QSplitter(Qt.Horizontal)

mainSplitter.setOpaqueResize(True)

frame = QFrame(mainSplitter)

mainLayout = QGridLayout(frame)        #mainLayout.setMargin(10)

mainLayout.setSpacing(6)

label1=QLabel("形状:")

label2=QLabel("画笔线宽:")

label3=QLabel("画笔颜色:")

label4=QLabel("画笔风格:")

label5=QLabel("画笔顶端:")

label6=QLabel("画笔连接点:")

label7=QLabel("画刷风格:")

label8=QLabel("画刷颜色:")

self.shapeComboBox = QComboBox()

self.shapeComboBox.addItem("Line", "Line")

self.shapeComboBox.addItem("Rectangle", "Rectangle")

self.shapeComboBox.addItem('Rounded Rectangle','Rounded Rectangle')

self.shapeComboBox.addItem('Ellipse','Ellipse')

self.shapeComboBox.addItem('Pie','Pie')

self.shapeComboBox.addItem('Chord','Chord')

self.shapeComboBox.addItem('Path','Path')

self.shapeComboBox.addItem('Polygon','Polygon')

self.shapeComboBox.addItem('Polyline','Polyline')

self.shapeComboBox.addItem('Arc','Arc')

self.shapeComboBox.addItem('Points','Points')

self.shapeComboBox.addItem('Text','Text')

self.shapeComboBox.addItem('Pixmap','Pixmap')

self.widthSpinBox = QSpinBox()

self.widthSpinBox.setRange(0,20)

self.penColorFrame = QFrame()

self.penColorFrame.setAutoFillBackground(True)

self.penColorFrame.setPalette(QPalette(Qt.blue))

self.penColorPushButton = QPushButton("更改")

self.penStyleComboBox = QComboBox()

self.penStyleComboBox.addItem("Solid",Qt.SolidLine)

self.penStyleComboBox.addItem('Dash',  Qt.DashLine)

self.penStyleComboBox.addItem('Dot',  Qt.DotLine)

self.penStyleComboBox.addItem('Dash Dot',  Qt.DashDotLine)

self.penStyleComboBox.addItem('Dash Dot Dot',  Qt.DashDotDotLine)

self.penStyleComboBox.addItem('None',  Qt.NoPen)

self.penCapComboBox = QComboBox()

self.penCapComboBox.addItem("Flat",Qt.FlatCap)

self.penCapComboBox.addItem('Square', Qt.SquareCap)

self.penCapComboBox.addItem('Round', Qt.RoundCap)

self.penJoinComboBox = QComboBox()

self.penJoinComboBox.addItem("Miter",Qt.MiterJoin)

self.penJoinComboBox.addItem('Bebel', Qt.BevelJoin)

self.penJoinComboBox.addItem('Round', Qt.RoundJoin)

self.brushStyleComboBox = QComboBox()

self.brushStyleComboBox.addItem("Linear Gradient",Qt.LinearGradientPattern)

self.brushStyleComboBox.addItem('Radial Gradient', Qt.RadialGradientPattern)

self.brushStyleComboBox.addItem('Conical Gradient', Qt.ConicalGradientPattern)

self.brushStyleComboBox.addItem('Texture', Qt.TexturePattern)

self.brushStyleComboBox.addItem('Solid', Qt.SolidPattern)

self.brushStyleComboBox.addItem('Horizontal', Qt.HorPattern)

self.brushStyleComboBox.addItem('Vertical', Qt.VerPattern)

self.brushStyleComboBox.addItem('Cross', Qt.CrossPattern)

self.brushStyleComboBox.addItem('Backward Diagonal', Qt.BDiagPattern)

self.brushStyleComboBox.addItem('Forward Diagonal', Qt.FDiagPattern)

self.brushStyleComboBox.addItem('Diagonal Cross', Qt.DiagCrossPattern)

self.brushStyleComboBox.addItem('Dense 1', Qt.Dense1Pattern)

self.brushStyleComboBox.addItem('Dense 2', Qt.Dense2Pattern)

self.brushStyleComboBox.addItem('Dense 3', Qt.Dense3Pattern)

self.brushStyleComboBox.addItem('Dense 4', Qt.Dense4Pattern)

self.brushStyleComboBox.addItem('Dense 5', Qt.Dense5Pattern)

self.brushStyleComboBox.addItem('Dense 6', Qt.Dense6Pattern)

self.brushStyleComboBox.addItem('Dense 7', Qt.Dense7Pattern)

self.brushStyleComboBox.addItem('None', Qt.NoBrush)

self.brushColorFrame = QFrame()

self.brushColorFrame.setAutoFillBackground(True)

self.brushColorFrame.setPalette(QPalette(Qt.green))

self.brushColorPushButton = QPushButton("更改")

labelCol=0

contentCol=1

#建立布局

mainLayout.addWidget(label1,1,labelCol)

mainLayout.addWidget(self.shapeComboBox,1,contentCol)

mainLayout.addWidget(label2,2,labelCol)

mainLayout.addWidget(self.widthSpinBox,2,contentCol)

mainLayout.addWidget(label3,4,labelCol)

mainLayout.addWidget(self.penColorFrame,4,contentCol)

mainLayout.addWidget(self.penColorPushButton,4,3)

mainLayout.addWidget(label4,6,labelCol)

mainLayout.addWidget(self.penStyleComboBox,6,contentCol)

mainLayout.addWidget(label5,8,labelCol)

mainLayout.addWidget(self.penCapComboBox,8,contentCol)

mainLayout.addWidget(label6,10,labelCol)

mainLayout.addWidget(self.penJoinComboBox,10,contentCol)

mainLayout.addWidget(label7,12,labelCol)

mainLayout.addWidget(self.brushStyleComboBox,12,contentCol)

mainLayout.addWidget(label8,14,labelCol)

mainLayout.addWidget(self.brushColorFrame,14,contentCol)

mainLayout.addWidget(self.brushColorPushButton,14,3)

mainSplitter1 = QSplitter(Qt.Horizontal)

mainSplitter1.setOpaqueResize(True)

stack1 = QStackedWidget()

stack1.setFrameStyle(QFrame.Panel|QFrame.Raised)

self.area = PaintArea()

stack1.addWidget(self.area)

frame1 = QFrame(mainSplitter1)

mainLayout1 = QVBoxLayout(frame1)        #mainLayout1.setMargin(10)

mainLayout1.setSpacing(6)

mainLayout1.addWidget(stack1)

layout = QGridLayout(self)

layout.addWidget(mainSplitter1,0,0)

layout.addWidget(mainSplitter,0,1)

self.setLayout(layout)

#信号和槽函数        self.shapeComboBox.activated.connect(self.slotShape)

self.widthSpinBox.valueChanged.connect(self.slotPenWidth)

self.penColorPushButton.clicked.connect(self.slotPenColor)

self.penStyleComboBox.activated.connect(self.slotPenStyle)

self.penCapComboBox.activated.connect(self.slotPenCap)

self.penJoinComboBox.activated.connect(self.slotPenJoin)

self.brushStyleComboBox.activated.connect(self.slotBrush)

self.brushColorPushButton.clicked.connect(self.slotBrushColor)

self.slotShape(self.shapeComboBox.currentIndex())

self.slotPenWidth(self.widthSpinBox.value())

self.slotBrush(self.brushStyleComboBox.currentIndex())

def slotShape(self,value):

shape =  self.area.Shape[value]

self.area.setShape(shape)

def slotPenWidth(self,value):

color = self.penColorFrame.palette().color(QPalette.Window)

style = Qt.PenStyle(self.penStyleComboBox.itemData(self.penStyleComboBox.currentIndex(),Qt.UserRole))

cap = Qt.PenCapStyle(self.penCapComboBox.itemData(self.penCapComboBox.currentIndex(),Qt.UserRole))

join = Qt.PenJoinStyle(self.penJoinComboBox.itemData(self.penJoinComboBox.currentIndex(),Qt.UserRole))

self.area.setPen(QPen(color,value,style,cap,join))

def slotPenStyle(self,value):

self.slotPenWidth(value)

def slotPenCap(self,value):

self.slotPenWidth(value)

def slotPenJoin(self,value):

self.slotPenWidth(value)

def slotPenColor(self):

color = QColorDialog.getColor(Qt.blue)

self.penColorFrame.setPalette(QPalette(color))

self.area.setPen(QPen(color))

def slotBrushColor(self):

color = QColorDialog.getColor(Qt.blue)

self.brushColorFrame.setPalette(QPalette(color))

self.slotBrush(self.brushStyleComboBox.currentIndex())

def slotBrush(self,value):

color = self.brushColorFrame.palette().color(QPalette.Window)

style = Qt.BrushStyle(self.brushStyleComboBox.itemData(value,Qt.UserRole))

if(style == Qt.Lin

用python画一个圆

###################################

# coding=utf-8

# !/usr/bin/env python

# __author__ = 'pipi'

# ctime 2014.10.11

# 绘制椭圆和圆形

###################################

from matplotlib.patches import Ellipse, Circle

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111)

ell1 = Ellipse(xy = (0.0, 0.0), width = 4, height = 8, angle = 30.0, facecolor= 'yellow', alpha=0.3)

cir1 = Circle(xy = (0.0, 0.0), radius=2, alpha=0.5)

ax.add_patch(ell1)

ax.add_patch(cir1)

x, y = 0, 0

ax.plot(x, y, 'ro')

plt.axis('scaled')

# ax.set_xlim(-4, 4)

# ax.set_ylim(-4, 4)

plt.axis('equal') #changes limits of x or y axis so that equal increments of x and y have the same length

plt.show()

你可以试试,谢谢。

python怎么调用函数画五环?

import turtle

turtle.showturtle() #屏幕上显示出来海龟绘图,终端中会用到

turtle.penup() #抬起画笔,此时画笔的移动不会留下痕迹

turtle.pendown() #放下画笔,此时画笔的移动会留下痕迹

turtle.pensize(3) #笔粗为3

turtle.goto(-200,100) #将画笔移动到(-200,100)坐标

turtle.color("red") #设定画笔的颜色为红色

turtle.circle(100) #以当前画笔所在点为圆最下端开始画半径为100的圆

turtle.circle(100,steps=n) #绘制一个周长为100,的n边形

turtle.forward(200) #将画笔前进200

turtle.backward(100) #将比后退100

turtle.right(70) #将画笔箭头的方向向右移70度

turtle.left(90) #将画笔箭头的方向向左移90度

turtle.stamp() #复制当前图形

turtle.write("hello,小朋友",font=('宋体',20,"normal")) #添加括号里的字符,font设置字符字体,大小以及作用

turtle.reste() #重置

turtle.hideturtle() #将画笔隐藏

turtle.done() #把所绘图显示出来,不关闭绘图软件

给绘制的图形填充颜色

turtle.begin_fill()

turtle.circle(100)

turtle.color("yellow")

turtle.end_fill()

1

2

3

4

例:画出奥运五环

import turtle

turtle.color("blue")

turtle.circle(100)

turtle.penup()

turtle.goto(-200,0)

turtle.pendown()

turtle.color("red")

turtle.circle(100)

turtle.penup()

turtle.goto(200,0)

turtle.color("yellow")

turtle.pendown()

turtle.circle(100)

turtle.penup()

turtle.goto(-100,-100)

turtle.color("black")

turtle.pendown()

turtle.circle(100)

turtle.penup()

turtle.goto(100,-100)

turtle.color("black")

turtle.pendown()

turtle.circle(100)

turtle.done()


新闻名称:定义函数画圆Python 画圆的定义
文章网址:http://cdkjz.cn/article/hggccp.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220