[英]Why are the 4 buttons not displaying?
#task is to create 4 buttons using the Canvas module in Tkinter
class Buttons:
def __init__(self, par2, par3, par4, par5, fill, xpos, ypos):
self.par2 = par2
self.par3 = par3
self.par4 = par4
self.par5 = par5
self.fill = fill
self.xpos = xpos
self.ypos = ypos
def display_button(self):
canvas.create_oval(self.par2, self.par3, self.par4, self.par5, fill=str(self.fill))
canvas.place(self.xpos, self.ypos)
#create the buttons using the parameters in def __init__
button1 = Buttons(100, 100, 300, 300, "grey", -25, 25)
button2 = Buttons(100, 100, 300, 300, "grey", 0, 0)
button3 = Buttons(100, 100, 300, 300, "grey", 100, 25)
button4 = Buttons(100, 100, 300, 300, "grey", 50, 50)
窗口和畫布之前已經創建並且工作正常。 有人能告訴我為什么當我運行程序時窗口中什么都沒有出現嗎? 謝謝
看起來您沒有在按鈕實例上調用Buttons.display_button
方法。 除非你這樣做,否則你什么也看不到。
從您編寫代碼的方式來看, canvas
似乎是一個全局tk.Canvas
對象。 任何時候你調用Buttons.display_button
,你還呼吁canvas.place
,其目的是要被用來作為一種替代canvas.pack
-你確定這就是你想要做什么? 因為,這似乎不太對。
我會從更簡單的東西(有用的東西)開始,然后從那里開始。 其他一些建議:我認為Buttons
不是類的好名字,因為該類的實例應該代表一個按鈕 - 我認為Button
是一個更好的名字。
此外,方法名稱display_button
有點多余。 我們已經知道這個方法“顯示”一個按鈕,因為它是Button
類的一部分——我會稱它為display
或render
。
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=200, height=200)
canvas.pack()
class Button:
def __init__(self, *args, **kwargs):
self.args = args
self.kwargs = kwargs
def render(self):
canvas.create_oval(*self.args, **self.kwargs)
button = Button(50, 50, 150, 150, fill="grey")
button.render()
root.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.