我有一個問題:當我向我的 tkinter 應用程式添加一個按鈕時,命令屬性無法正常作業。我嘗試了很多東西,但沒有奏效。有人能幫我嗎?
我的代碼:
from tkinter import ttk
import turtle
class App(tk.Tk):
def __init__(self):
super().__init__()
self.width = 1910
self.height = 828
self.geometry(f"{self.width}x{self.height} -10 0")
self.text = tk.Text(self)
self.text.pack(padx=10, pady=10, fill=tk.BOTH, expand=True, side=tk.LEFT)
self.run = ttk.Button(self, text="run", command=self.turtle.arc(-90, 90, 100)) # doesn't work
self.run.pack(fill=tk.X, padx=10, pady=10)
self.canvas = tk.Canvas(self)
self.canvas.config()
self.canvas.pack(side=tk.LEFT, expand=True, padx=10, pady=10, fill=tk.BOTH)
self.screen = turtle.TurtleScreen(self.canvas)
self.pen = turtle.RawTurtle(self.screen)
self.turtle = self.Turtle(self)
def start(self):
self.mainloop()
class Turtle:
def __init__(self, app):
self.pen = app.pen
def arc(self, afrom, ato, r):
self.pen.seth(afrom)
self.pen.up()
self.pen.right(90)
self.pen.forward(r)
self.pen.left(90)
self.pen.down()
self.pen.circle(ato - afrom, r)
self.pen.left(90)
self.pen.forward(r)
self.pen.left(90)
我認為問題出在以下幾點:
self.run = ttk.Button(self, text="run", command=self.turtle.arc(-90, 90, 100)) # doesn't work
提前致謝!
uj5u.com熱心網友回復:
嘗試這個
# use a lambda to call an anonymous function as the 'command'
self.run = ttk.Button(self, text="run", command=lambda: self.turtle.arc(-90, 90, 100))
是的,正如已經指出的那樣,你想使用commandnotcallback
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/511257.html
