#python #button #tkinter
Можно ли задать параметры для всех Button/text/Label одной функцие, чтобы не писать к каждой кнопке одинаковые параметры? К примеру, я создал много однотипных кнопок для ввода данных калькулятора: bttn1_1 = Button(root, text='MC', font='Arial 15', width=3, height=1, bd=4, background='SkyBlue2', activebackground='green yellow')
Ответы
Ответ 1
Примерно так можно: buttons = {} for button_text in map(str, range(10)): button = Button(root, text=button_text, font='Arial 15', width=3, height=1, bd=4, background='SkyBlue2', activebackground='green yellow') buttons[button_text] = button Кнопка с текстом 1: buttons['1'] Еще можно создать функцию которая обрезает/исправляет параметры: def create_button(text): return Button(root, text=text, font='Arial 15', width=3, height=1, bd=4, background='SkyBlue2', activebackground='green yellow')Ответ 2
Можно опции для кнопок, созданных в разных местах кода, менять, изменив соответствующий стиль: #!/usr/bin/env python3 import tkinter.ttk root = tkinter.Tk() style = tkinter.ttk.Style() for color in ['red', 'green']: tkinter.ttk.Button( text=color, command=lambda c=color: style.configure('TButton', background=c)).pack() root.mainloop() Нажимая на любую из кнопок, изменяется цвет у всех кнопок со стилем 'TButton' в данном случае. Сгруппировать кнопки по своим стилям, можно используя style параметр: Button(style='C.TButton').
Комментариев нет:
Отправить комментарий