- PySimpleGUI 教程
- PySimpleGUI - 主页
- PySimpleGUI - 介绍
- PySimpleGUI - 环境设置
- PySimpleGUI - Hello World
- PySimpleGUI - 弹出窗口
- PySimpleGUI - 窗口类
- PySimpleGUI - 元素类
- PySimpleGUI - 事件
- PySimpleGUI - 菜单栏
- PySimpleGUI - Matplotlib 集成
- PySimpleGUI - PIL 使用方法
- PySimpleGUI - 调试器
- PySimpleGUI - 设置
- PySimpleGUI 有用资源
- PySimpleGUI - 快速指南
- PySimpleGUI - 有用资源
- PySimpleGUI - 讨论
PySimpleGUI - 图形元素
图形元素类似于画布,但功能非常强大。你可以定义自己的坐标系,使用你自己的单位,然后再将它们显示在以像素定义的区域中。
你应该向图形对象提供以下值:
画布大小(以像素为单位)
坐标系左下角 (x,y) 坐标
坐标系右上角 (x,y) 坐标
创建图形元素,可以通过调用与 Tkinter 画布类似的下列方法获取图形 ID:
draw_arc(self, top_left, bottom_right, extent, start_angle, style=None, arc_color='black', line_width=1, fill_color=None) draw_circle(self, center_location, radius, fill_color=None, line_color='black', line_width=1) draw_image(self, filename=None, data=None, location=(None, None)) draw_line(self, point_from, point_to, color='black', width=1) draw_lines(self, points, color='black', width=1) draw_oval(self, top_left, bottom_right, fill_color=None, line_color=None, line_width=1) draw_point(self, point, size=2, color='black') draw_polygon(self, points, fill_color=None, line_color=None, line_width=None) draw_rectangle(self, top_left, bottom_right, fill_color=None, line_color=None, line_width=None) draw_text(self, text, location, color='black', font=None, angle=0, text_location='center')
除了上述绘制方法之外,图形类还定义 move_figure() 方法,通过该方法可以根据相对于其前一个坐标的新坐标将由其 ID 标识的图像移动到新位置。
move_figure(self, figure, x_direction, y_direction)
如果你将 drag_submits 属性设置为 True,那么可以捕捉图形区域内的鼠标事件。当你单击图形区域中的任意位置时,将生成以下事件:Graph_key + '+UP'。
在以下示例中,我们在图形元素的中心处画一个小圆圈。图形对象下方有用于在左、右、上、下方向移动圆圈的按钮。单击时,将调用 mov_figure() 方法。
import PySimpleGUI as psg graph=psg.Graph(canvas_size=(700,300), graph_bottom_left=(0, 0), graph_top_right=(700,300), background_color='red', enable_events=True, drag_submits=True, key='graph') layout = [[graph], [psg.Button('LEFT'), psg.Button('RIGHT'), psg.Button('UP'), psg.Button('DOWN')]] window = psg.Window('Graph test', layout, finalize=True) x1,y1 = 350,150 circle = graph.draw_circle((x1,y1), 10, fill_color='black', line_color='white') rectangle = graph.draw_rectangle((50,50), (650,250), line_color='purple') while True: event, values = window.read() if event == psg.WIN_CLOSED: break if event == 'RIGHT': graph.MoveFigure(circle, 10, 0) if event == 'LEFT': graph.MoveFigure(circle, -10,0) if event == 'UP': graph.MoveFigure(circle, 0, 10) if event == 'DOWN': graph.MoveFigure(circle, 0,-10) if event=="graph+UP": x2,y2= values['graph'] graph.MoveFigure(circle, x2-x1, y2-y1) x1,y1=x2,y2 window.close()
运行上述程序。使用按钮移动圆圈。
pysimplegui_element_class.htm
广告