我试图将一组16张图片放入tkinter框架中。我创建了一个字典,将图像地址名称(存储在imgbutton中)映射为字典imagedict的键,其值是包含其在tkinter网格中的位置的字符串(例如,列0和行中的按钮= 1的名称为backgroundpic5.jpg,值为" 01")。
每行包含4张图片,总共有4行。与imgbutton相当的PhotoImage是buttonphoto(使用PIL创建)。但是,当我尝试运行它时,它告诉我grid_configure命令接受2个参数,而我已经给出3(类型错误)
Pos=imagedict[imgbutton]
GridColumn=Pos[0]; GridRow=Pos[1]
Button= tk.Button(root, image=buttonphoto)
Button.grid(GridColumn, GridRow)
Button.pack()
错误陈述
Traceback (most recent call last):
File "C:\Users\USER\Desktop\ComputerProject\Tester2Imagebg.py", line 44, in <module>
Button.grid(GridColumn, GridRow)
TypeError: grid_configure() takes at most 2 arguments (3 given)
谢谢:)
答案 0 :(得分:2)
听取错误。它知道它在说什么......好吧无论如何它会告诉你一些事情。查看Tkinter.Button.grid
的文档,它会告诉我们。您需要执行Button.grid(column=GridColumn, row=GridRow)
你看,错误是正确的。你向Button.grid()
提供了太多的参数。使用Button.grid(...)
实际上只是tk.Button.grid(Button, ...)
的快捷方式,所以你们共同提供了三个参数,但是.grid()
期待一个按钮实例,cnf
和一些关键字参数。您使用Button.grid(...)
而不是tk.Button(...)
来提供按钮实例,但是您提供了另外两个位置参数。您需要提供列号和行号作为关键字参数。
答案 1 :(得分:0)
使用grid()
layout manager options的正确语法:
Button.grid(column = GridColumn, row = GridRow)