Кнопка TTK: text vs textvariable. Я пытаюсь установить текст метки кнопки на «Hi» по умолчанию и, нажав на нее, изменить текст на «Hello»
Я пробовал несколько методов, чтобыполучить текст для изменения.
Если я установлю text
= "Привет", это нормально, но всякий раз, когда я добавляю textvariable
, он ломается и не отображает текстовую метку на самой кнопке.
Что-то не так с добавлением аргументов text
и textvariable
при создании кнопки в tkinter, как показано ниже?
С Программирование на Python GUI с использованием Tkinter Alan D. Moore
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
tvar = tk.StringVar()
def swaptext():
if tvar.get() == 'Hi':
tvar.set('There')
else:
tvar.set('Hi')
# my_button = ttk.Button(parent, text='Hi', textvariable=tvar, command=swaptext) # BUTTON LABEL IS BLANK
my_button = ttk.Button(parent, text='Hi', command=swaptext) # WORKS, BUT NO TEXTVARIABLE TO CALL TO SWAP TEXT
my_button.pack()
root.mainloop()
Я ожидаю, что кнопка покажет сразу, с "Hi", учитывая, что по умолчанию text
установлено значение "Hi", но на самом деленачинается пустым.Хотя он начинается пустым, когда я нажимаю кнопку, он переключается с:
Может кто-нибудь указать мне, что я делаю неправильно, почему мой дефолтКнопка text
значение и textvariable
?
Ближайший ответ, который я нашел, был здесь: TextVariable не работает , но это было в отношении конструкторов Entry, которые непохоже, в качестве аргумента принимают text
.
Если я пропустил ответ на этот вопрос, я извиняюсь, но я нигде не вижу ни одного из перечисленных.