我在 python 中使用 tkinter 有点混乱,我想在我的画布屏幕上添加一些按钮。但是当我运行脚本时,按钮没有出现在屏幕上。这有点复杂,但我正在从 for 循环创建按钮,然后将它们附加到列表中。
这是我的代码:
from tkinter import *
class Application:
def __init__(self):
self.window = Tk()
self.window.geometry("1280x720")
self.window.resizable(False, False)
self.initHomeWindow()
self.window.mainloop()
def initHomeWindow(self):
def initButtons():
self.buttonList = []
self.button_load = {}
self.button = {}
imgInfo = [
['Abs', '105', '425.97', '310'], #1st one is button itself, 2nd one is width of the button, 3rd one is the x-position of the button, 4th one is y-position of the button.
['Arms', '123', '425.97', '370'],
['Back', '117', '425.97', '430'],
['Calves', '128', '848', '314.5'],
['Delts', '121', '425.97', '490'],
['Glutes', '128', '848', '364.5'],
['Hams', '127', '848', '414.5'],
['Pecs', '112', '425.97', '550'],
['Quads', '128', '848', '464.5'],
['Traps', '126', '425.97', '610']
]
for x in range(len(imgInfo)):
self.button[str(imgInfo[x][0])] = Button(self.window, width=int(imgInfo[x][1]), height=49)
self.buttonList.append([self.button[str(imgInfo[x][0])], imgInfo[x][2], imgInfo[x][3]])
initButtons()
self.window.overrideredirect(False)
self.window.geometry("1280x720")
self.canvas2 = Canvas(self.window, highlightthickness=0, bg="#1b1b1b")
self.canvas2.pack(fill=BOTH, expand=TRUE)
for x in range(len(self.buttonList)):
self.canvas2.create_window(float(self.buttonList[x][1]), float(self.buttonList[x][2]), window=self.buttonList[x][0])
Application()
当我运行脚本时,按钮未显示在屏幕上(见图)
我希望有人可以帮助我解决这个问题,在此先感谢!