用Python的tkinter设计三个菜单来画多边形,矩形,椭圆
时间: 2023-11-20 12:05:54 浏览: 150
以下是一个使用tkinter实现的简单示例程序,该程序可以通过三个菜单画多边形、矩形和椭圆:
```python
import tkinter as tk
class DrawShape:
def __init__(self, master):
self.master = master
self.master.title('绘制图形')
self.master.geometry('400x300')
self.canvas = tk.Canvas(self.master, bg='white')
self.canvas.pack(fill=tk.BOTH, expand=True)
# 创建菜单
self.menu = tk.Menu(self.master)
shape_menu = tk.Menu(self.menu, tearoff=0)
shape_menu.add_command(label='多边形', command=self.draw_polygon)
shape_menu.add_command(label='矩形', command=self.draw_rectangle)
shape_menu.add_command(label='椭圆', command=self.draw_oval)
self.menu.add_cascade(label='绘制图形', menu=shape_menu)
self.master.config(menu=self.menu)
def draw_polygon(self):
self.canvas.delete('all')
self.canvas.create_polygon(50, 50, 100, 100, 150, 50, 100, 0, fill='red')
def draw_rectangle(self):
self.canvas.delete('all')
self.canvas.create_rectangle(50, 50, 150, 100, fill='green')
def draw_oval(self):
self.canvas.delete('all')
self.canvas.create_oval(50, 50, 150, 100, fill='blue')
if __name__ == '__main__':
root = tk.Tk()
app = DrawShape(root)
root.mainloop()
```
在这个示例程序中,我们首先创建了一个`DrawShape`类来管理整个程序的逻辑。在初始化函数中,我们创建了一个画布`canvas`并将其放置在主窗口中,然后创建了一个菜单`menu`,其中包含一个下拉菜单`shape_menu`,该下拉菜单包含三个选项:`多边形`、`矩形`和`椭圆`。接着,我们将菜单配置为主窗口的菜单栏。
当用户选择菜单中的某个选项时,会调用对应的函数,这些函数会删除画布上的所有元素,并使用`create_polygon`、`create_rectangle`和`create_oval`方法来绘制多边形、矩形和椭圆。这些方法的参数是图形的坐标和颜色等属性。
最后,在`if __name__ == '__main__'`中,我们创建了一个`tk.Tk`对象和一个`DrawShape`对象,并调用`mainloop`方法启动主事件循环。这样,我们就完成了一个简单的图形绘制程序。
阅读全文