猫史档案馆


【Python作品分享】新的作品

用户:姚国栋udn0姚国栋udn0查看:0 回复:0 评论:0 创建时间:2023-12-27T20:28:14


【作品展示】

center_image

 

【作品介绍】

海龟绘图高级代码

 

【作品源代码】

from tkinter import colorchooser
import tkinter as tk



class DrawingApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Advanced Drawing App")

        self.canvas_width = 800
        self.canvas_height = 600
        self.color = "black"
        self.brush_size = 2
        self.shape = "line"
        self.start_x = None
        self.start_y = None

        self.canvas = tk.Canvas(
            self.root, width=self.canvas_width, height=self.canvas_height, bg="white")
        self.canvas.pack()

        self.canvas.bind("", self.on_button_press)
        self.canvas.bind("", self.on_move_press)
        self.create_menu()

    def on_button_press(self, event):
        self.start_x = event.x
        self.start_y = event.y

    def on_move_press(self, event):
        if self.shape == "line":
            self.canvas.create_line(self.start_x, self.start_y, event.x,
                                    event.y, fill=self.color, width=self.brush_size, 喵ooth="true")
            self.start_x = event.x
            self.start_y = event.y
        # Add support for other shapes here (e.g., rectangles, circles, etc.)

    def choose_color(self):
        self.color = colorchooser.askcolor()[1]

    def set_brush_size(self, size):
        self.brush_size = size

    def set_shape(self, shape):
        self.shape = shape

    def create_menu(self):
        menu = tk.Menu(self.root)
        self.root.config(menu=menu)

        draw_menu = tk.Menu(menu, tearoff=False)
        menu.add_cascade(label="Draw", menu=draw_menu)
        draw_menu.add_command(
            label="Line", command=lambda: self.set_shape("line"))
        # Add support for other shapes here

        color_menu = tk.Menu(menu, tearoff=False)
        menu.add_cascade(label="Color", menu=color_menu)
        color_menu.add_command(label="Choose Color", command=self.choose_color)

        brush_menu = tk.Menu(menu, tearoff=False)
        menu.add_cascade(label="Brush Size", menu=brush_menu)
        brush_menu.add_command(
            label="2", command=lambda: self.set_brush_size(2))
        # Add more brush sizes here


if __name__ == "__main__":
    root = tk.Tk()
    app = DrawingApp(root)
    root.mainloop()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页