Rysowanie koła na tkinter Canvas
jest zwykle wykonywane przy użyciu metody create_oval
. Jednak dostarczanie obwiedni jest często mylącym sposobem myślenia o rysowaniu okręgu. Nie jest szczególnie trudno wymyślić dla niego skrót, ale nie mogłem znaleźć nikogo innego, który zrobiłby coś podobnego, więc opublikuję go w nadziei, że ktoś inny uzna to za przydatne.Narysuj okrąg w Tkinter (Python)
13
A
Odpowiedz
28
Oto sztuczka znana jako "łatanie małp", w której dodajemy członka do klasy Tkinter
Canvas
. Poniżej znajduje się w pełni funkcjonujący program (Python 2.7), którego interesujący jest akapit trzeci. Dodaj go do swojego kodu i możesz traktować tk.Canvas.create_circle(x, y, r, options...)
tak samo, jak metodę wbudowaną, gdzie opcje są takie same, jak w przypadku opcji create_oval
. Robimy coś podobnego dla create_arc
(czwarty akapit) i dajemy możliwość określenia kąta end
zamiast 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()
Wynik:
Powiązane problemy
- 1. Python, narysuj okrąg z PIL
- 2. Narysuj okrąg o ggplot2
- 3. Narysuj okrąg na widoku (Android)
- 4. Narysuj okrąg (bez cieniowania) za pomocą Three.js
- 5. as3: narysuj okrąg z otworem w nim używając actionscript
- 6. Narysuj okrąg z promieniem i punktami wokół krawędzi
- 7. Usuwanie etykiety w Python Tkinter?
- 8. Python: Tkinter & turtle
- 9. Python Tkinter Poprawna wymowa
- 10. Pozycja myszy Python Tkinter
- 11. tkinter showinfo python 3
- 12. Narysuj linię w języku Python Mayavi
- 13. Narysuj wygasły kształt w SVG
- 14. Python Tkinter słuchacz w polu tekstowym
- 15. Jak powiązać Ctrl +/w python tkinter?
- 16. Modyfikuj domyślną czcionkę w Python Tkinter
- 17. Narysuj część okręgu
- 18. Narysuj dendrogram w pythonu ręcznie
- 19. python tkinter z prostym opakowaniem internetowym
- 20. Python Tkinter Płótno nie wiążą klawiatury Przed
- 21. Python tkinter mouseWheel wiązania się pasek przewijania
- 22. Pasek przewijania Python Tkinter do ramki
- 23. Python: Tkinter/ttk Temat Box wiadomości
- 24. Tworzenie planszę z Python i Tkinter
- 25. Python Tkinter aplikacja pasuje na ekranie
- 26. Tekst pionowy w płótnie Tkinter
- 27. Jak wyświetlić okrąg w GMSMapView
- 28. Narysuj tekst w centrum
- 29. Narysuj hiperpłaszczyznę w R?
- 30. Jak zmienić rozmiar tekstu w widgecie etykiet, python tkinter