Tkinter ist eine ausgezeichnete Wahl für solch eine einfache Aufgabe. Sie haben es fast sicher schon installiert und das Canvas Widget ist bemerkenswert leistungsstark. Es hat eingebaute Einrichtungen, um Linien zu zeichnen, die einen Pfeil am Ende haben, und die Rotation ist sehr geradlinig.
Lassen Sie sich nicht von "allgemeinem Wissen" über Tkinter beeinflussen - es ist ein modernes, stabiles und extrem einfach zu bedienendes Toolkit. Sie können nicht den nächsten Photoshop oder iMovie damit erstellen, aber für die meisten Menschen und für die meisten Apps ist es eine sehr solide, pragmatische Wahl.
Hier ist ein schnelles und schmutziges Beispiel:
import Tkinter as tk
import math
class ExampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.canvas = tk.Canvas(self, width=400, height=400)
self.canvas.pack(side="top", fill="both", expand=True)
self.canvas.create_line(200,200, 200,200, tags=("line",), arrow="last")
self.rotate()
def rotate(self, angle=0):
'''Animation loop to rotate the line by 10 degrees every 100 ms'''
a = math.radians(angle)
r = 50
x0, y0 = (200,200)
x1 = x0 + r*math.cos(a)
y1 = y0 + r*math.sin(a)
x2 = x0 + -r*math.cos(a)
y2 = y0 + -r*math.sin(a)
self.canvas.coords("line", x1,y1,x2,y2)
self.after(100, lambda angle=angle+10: self.rotate(angle))
app = ExampleApp()
app.mainloop()
Wie definieren Sie "professioneller"? Diese Aussage ergibt für mich keinen Sinn. –
Nur durch das Aussehen und das Gefühl der resultierenden GUI. Ich habe wirklich keine persönlichen Interessen mit WxPython, es ist nur etwas, das ich Leute sagen hörte (in Bezug auf Tkinter). Es ist mir egal. – Harel