snafu hat geschrieben:Woran machst du fest, dass er Tkinter nutzen will?
Das weiß ich natürlich nicht, das ist nur eine Anregung.
Hier noch mal ein Beispiel mit Tkinter:
Code: Alles auswählen
#!/usr/bin/env python
import Tkinter
from Tkconstants import *
class ArrowWindow:
def __init__(self):
self.mw = Tkinter.Tk()
self.mw.title("Arrow")
self.mw.geometry("+300+250")
self.cv = Tkinter.Canvas(self.mw, bg = "white")
self.cv.pack()
self.arrow = 0
self.drawArrow("Right")
self.btnOk = Tkinter.Button(self.mw,
text = "Ok",
command = self.mw.destroy)
self.btnOk.bind(sequence = "<Return>",
func = lambda event: self.mw.destroy())
self.btnOk.focus()
self.btnOk.pack(side = RIGHT, padx = 10, pady = 10)
self.fr = Tkinter.Frame(self.mw)
self.fr.pack(side = RIGHT, padx = 10, pady = 10)
self.btnl = Tkinter.Button(self.fr, text = "Left", command = lambda: self.drawArrow("Left")).pack(side = LEFT, padx = 10)
self.btnu = Tkinter.Button(self.fr, text = "Up", command = lambda: self.drawArrow("Up")).pack(side = LEFT, padx = 5)
self.btnd = Tkinter.Button(self.fr, text = "Down", command = lambda: self.drawArrow("Down")).pack(side = LEFT, padx = 5)
self.btnr = Tkinter.Button(self.fr, text = "Right", command = lambda: self.drawArrow("Right")).pack(side = LEFT, padx = 10)
self.mw.mainloop()
def drawArrow(self, direction):
self.cv.delete(self.arrow)
if direction in ("Left", "Right"):
coords = (100, 100, 200, 100)
else:
coords = (150, 50, 150, 150)
if direction in ("Left", "Up"):
arrdir = FIRST
else:
arrdir = LAST
self.arrow = self.cv.create_line(coords, arrow = arrdir, arrowshape = (8, 10, 3))
if __name__ == "__main__":
app = ArrowWindow()
(Man kann die vier Richtungsbuttons hier übrigens nicht in einer Liste verwalten, weil die Parameterübergabe mit "command = lamda :" dann nicht hinhaut ...)
Gruß