Использование переменной для передачи параметров в виджет Tkinter - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь создать графический интерфейс с Tkinter, но у меня возникла проблема.В моем графическом интерфейсе будет много очень похожих кнопок с множеством параметров (шрифт, ширина, высота, команда и т. Д.), И я бы предпочел написать имя переменной, в которой хранятся повторяющиеся параметры, а не повторять все команды снова и снова.снова.

Я даже не знаю, возможно ли это.Я попытался сохранить параметры в виде строки в переменной, а затем передать ее в переменную, но она вызывает: AttributeError: 'str' object has no attribute 'tk'

Это пример моих кнопок:

Num3 = Tk.Button(main, text="3", width = 2, height = 2, font = "Arial 16", command=lambda: nex("3")) Num4 = Tk.Button(main, text="4", width = 2, height = 2, font = "Arial 16", command=lambda: nex("4"))

И мне бы хотелось, чтобы это выглядело так:

Var = 'main, width = 2, height = 2, font = "Arial 16",' Num3 = Tk.Button(Var, text="3",command=lambda: nex("3")) Num4 = Tk.Button(Var, text="4",command=lambda: nex("4"))

Но возникает вопрос, что AttributeError: 'str' object has no attribute 'tk'

Спасибо за ответы, люди.

1 Ответ

1 голос
/ 11 апреля 2019

Сохраните их в словаре, как это

import tkinter as tk

main = tk.Tk()

options = {"text": "Hello!", "font": "Arial 16", "width": 2, "height": 2}

Num4 = tk.Button(main, **options)
Num4.pack()

main.mainloop()

См. Этот вопрос Как передать элементы словаря в качестве аргументов функции в python? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...