我正在尝试使用Frame
编写一个代码,将Button
打印到屏幕上
其中Canvas
import tkinter as tk
class SampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self)
self.button = tk.Button(self, text="Get", command=self.on_button)
self.button.pack()
self.entry.pack()
self.text =tk.Text(height=20,width=10)
self.text.pack()
self.canvas=tk.Canvas(fill='Black')
self.canvas.pack()
def on_button(self):
print(self.entry.get())
app = SampleApp()
app.mainloop()
一旦我运行它,我就会收到一个错误:
_tkinter.TclError: unknown option "-fill"
我不知道为什么。
答案 0 :(得分:1)
Fill是create_rectangle
参数,而不是构造函数参数:
self.canvas.create_rectangle(0, 0, width, height, fill = "black")
答案 1 :(得分:1)
画布不使用fill
选项来定义背景;错误来自Tkinter代码的较低级别,它转移到底层的Tcl / Tk运行时;选项名称会在它们前面放置一个连字符,否则错误就意味着它所说的“在这种情况下不知道fill
是什么”(释义)。
但是,画布 使用带有颜色的background
选项。尝试:
self.canvas=tk.Canvas(background='Black')
您还可以在画布上创建矩形; 那些是可填写的。整个画布不是矩形,它是一个小部件。