Вы можете связать переменную с виджетом, но вы также можете добавить текст (или любой атрибут) виджета с помощью метода configure
.Например:
self.label4.configure(text="hello, world!")
Вы можете определить свои кнопки так, чтобы они отправляли соответствующую строку.Например:
определить пару кнопок:
self.button1 = Button(frame, text="Variable 1",
command=lambda message="Variable 1": self.changevar(message))
self.button2 = Button(frame, text="Variable 2",
command=lambda message="Variable 2": self.changevar(message))
определить обратный вызов:
def changevar(self, message):
self.label4.configure(text=message)
Кстати, я настоятельно рекомендую не используя from Tkinter import *
.Это плохая практика.Вместо этого импортируйте Tk и полностью определите ваши функции.Например:
import Tkinter as tk
...
frame = tk.Frame(...)
Выполнение import *
из любого модуля - это плохо.Работа с Tkinter особенно плоха для современных версий python.Tkinter имеет так называемые «тематические» виджеты в модуле ttk
.Они имеют те же имена классов, что и обычные виджеты - есть Tkinter.Button и ttk.Button.
Выполнение import *
не позволяет вам легко использовать оба в одном файле.Для любого сложного приложения вы хотите смешивать и сочетать, чтобы получить желаемый вид.Если вы используете предпочтительный стиль импорта, вы можете сделать tk.Label(...)
и ttk.Label(...)
, и ваш код станет совершенно ясным, какой набор виджетов вы используете.