Tkinter Grid Manager (TypeError)
Я пытаюсь поместить набор из 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)
Спасибо:)
2 ответа
Слушай ошибку. Он знает, о чем говорит... в любом случае, он вам кое-что говорит. Посмотрите документацию для Tkinter.Button.grid
и это скажет. Вам нужно сделать Button.grid(column=GridColumn, row=GridRow)
Вы видите, ошибка верна. Вы дали слишком много аргументов Button.grid()
, С помощью Button.grid(...)
на самом деле просто ярлык для tk.Button.grid(Button, ...)
Итак, все вместе вы дали три аргумента, но .grid()
ожидает экземпляр кнопки, cnf
и некоторые ключевые аргументы. Вы предоставляете экземпляр кнопки с помощью Button.grid(...)
вместо tk.Button(...)
, но вы дали два других позиционных аргумента. Вы должны предоставить номера столбцов и строк в качестве аргументов ключевых слов.
Используйте правильный синтаксис grid()
параметры менеджера макета:
Button.grid(column = GridColumn, row = GridRow)