Tkinter là một lựa chọn tuyệt vời cho một nhiệm vụ đơn giản như vậy. Bạn gần như chắc chắn đã có nó được cài đặt, và các widget Canvas là đáng kể mạnh mẽ. Nó có các cơ sở tích hợp để vẽ các đường có mũi tên ở cuối và quay rất thẳng về phía trước.
Đừng để "kiến thức chung" về Tkinter ảnh hưởng đến bạn - đó là bộ công cụ hiện đại, ổn định và cực kỳ dễ sử dụng. Bạn không thể tạo ra photoshop tiếp theo hoặc iMovie với nó, nhưng đối với hầu hết mọi người và cho hầu hết các ứng dụng nó là một sự lựa chọn rất vững chắc, thực dụng.
Dưới đây là một ví dụ nhanh chóng và bẩn:
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()
Nguồn
2012-09-21 12:02:23
Làm thế nào để bạn xác định "chuyên nghiệp hơn"? Tuyên bố đó không có ý nghĩa gì với tôi. –
Chỉ bằng giao diện của GUI kết quả. Tôi thực sự không có bất kỳ cổ phần cá nhân với wxPython, nó chỉ là một cái gì đó tôi nghe mọi người nói (liên quan đến Tkinter). Tôi cũng không quan tâm. – Harel