Tkinterは、このような単純なタスクに最適です。ほぼ確実に既にインストールされており、Canvasウィジェットは非常に強力です。それは、最後に矢を持つ線を描画するための機能を内蔵しており、回転は非常に簡単です。
Tkinterについての「常識」はあなたを揺さぶってはいけません。現代的で安定した、使いやすいツールキットです。次のフォトショップやiMovieを作成することはできませんが、ほとんどの人にとって、ほとんどのアプリでは非常にしっかりした、実用的な選択です。ここで
は、迅速かつ汚い例です。
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()
「もっとプロフェッショナル」をどのように定義しますか?その声明は私には意味をなさない。 –
結果のGUIのルック・アンド・フィールだけ。私は実際にwxPythonに個人的な賭けを持っていません。それは、人々が言うことを聞いただけのものです(Tkinterに関して)。どちらにしても気にしない。 – Harel