libreria example descargar python tkinter circle

python - example - ttk button



Dibujar cĂ­rculo en Tkinter(Python) (2)

El dibujo de un círculo en un tkinter Canvas se realiza generalmente mediante el método create_oval . Sin embargo, suministrar el cuadro delimitador es a menudo una forma confusa de pensar en dibujar un círculo. No es particularmente difícil encontrar un atajo para ello, pero no pude encontrar a nadie más haciendo algo similar, así que lo publicaré con la esperanza de que alguien más lo encuentre útil.


Aquí hay un truco conocido como "parches de monos" en el que en realidad agregamos un miembro a la clase Tkinter Canvas . A continuación se muestra un programa totalmente funcional (Python 2.7), del cual el tercer párrafo es de interés. tk.Canvas.create_circle(x, y, r, options...) a su código y puede tratar tk.Canvas.create_circle(x, y, r, options...) como lo haría con un método incorporado, donde las opciones son las mismas que create_oval . Hacemos algo similar para create_arc (cuarto párrafo), y le damos la opción de especificar un ángulo end lugar de una extent .

import Tkinter as tk root = tk.Tk() canvas = tk.Canvas(root, width=200, height=200, borderwidth=0, highlightthickness=0, bg="black") canvas.grid() def _create_circle(self, x, y, r, **kwargs): return self.create_oval(x-r, y-r, x+r, y+r, **kwargs) tk.Canvas.create_circle = _create_circle def _create_circle_arc(self, x, y, r, **kwargs): if "start" in kwargs and "end" in kwargs: kwargs["extent"] = kwargs["end"] - kwargs["start"] del kwargs["end"] return self.create_arc(x-r, y-r, x+r, y+r, **kwargs) tk.Canvas.create_circle_arc = _create_circle_arc canvas.create_circle(100, 120, 50, fill="blue", outline="#DDD", width=4) canvas.create_circle_arc(100, 120, 48, fill="green", outline="", start=45, end=140) canvas.create_circle_arc(100, 120, 48, fill="green", outline="", start=275, end=305) canvas.create_circle_arc(100, 120, 45, style="arc", outline="white", width=6, start=270-25, end=270+25) canvas.create_circle(150, 40, 20, fill="#BBB", outline="") root.wm_title("Circles and Arcs") root.mainloop()

Resultado:


solución más simple:

from tkinter import * root = Tk() myCanvas = Canvas(root) myCanvas.pack() def create_circle(x, y, r, canvasName): #center coordinates, radius x0 = x - r y0 = y - r x1 = x + r y1 = y + r return canvasName.create_oval(x0, y0, x1, y1) create_circle(100, 100, 20, myCanvas) create_circle(50, 25, 10, myCanvas) root.mainloop()