如何解决如何使用 guizero 和事件在 python 中绘制三角形 Python HeadFirst Book v2
如何在python中使用guizero和鼠标绘制三角形。 Python HeadFirst Book v2 我在配置使用 guizero 绘制三角形的工具时遇到了困难 该练习可在 HeadFirst Python v2 一书中找到。我们正在编写一个绘画应用程序。我们需要使用鼠标来绘制一些形状。 有人可以看看代码并提出解决方案
from guizero import App,Drawing,Combo,Slider
from guizero.Box import Box
from guizero.Text import Text
def draw(event):
if shape.value=="line":
painting.line(
painting.last_event.x,painting.last_event.y,event.x,event.y,color=color.value,width=width.value
)
painting.last_event=event
if shape.value=="rectangle":
if painting.last_shape is not None:
painting.delete(painting.last_shape)
rectangle= painting.rectangle(
painting.first_event.x,painting.first_event.y,)
painting.last_shape=rectangle
if shape.value=="oval":
if painting.last_shape is not None:
painting.delete(painting.last_shape)
oval= painting.oval(
painting.first_event.x,)
painting.last_shape=oval
if shape.value=="Triangle":
if painting.last_shape is not None:
painting.delete(painting.last_shape)
meio=(painting.first_event.x+painting.last_event.x)/2
triangle= painting.triangle(
meio,painting.last_event.x,painting.first_event.x,)
painting.last_shape=triangle
def start(event):
painting.last_event=event
painting.first_event=event
painting.last_shape=event
#----------------------------
#App
#----------------------------
app=App("Paint")
caixa_ferramentas=Box(app,border=True,align="top",width="fill")
Text(caixa_ferramentas,text="Ferramentas:",align="left")
shape=Combo(caixa_ferramentas,options=["line","rectangle","oval","Triangle"],align="left")
Text(caixa_ferramentas,text="Cor:",align="left")
color=Combo(caixa_ferramentas,options=["black","white","red","green","blue"],text="Tamanho:",align="left")
width=Slider(caixa_ferramentas,start=1,end=10,align="left")
painting=Drawing(app,width="fill",height="fill")
painting.when_left_button_pressed=start
painting.when_mouse_dragged=draw
app.display()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。