如何使用 tkinter 下拉菜单更改多个 类 中的多个标签
How to change multiple labels in multiple classes with a tkinter dropdown menu
所以,我希望用户能够用英语使用我的程序。他们应该能够通过下拉菜单切换到他们的语言。我的程序只有四页,每页都有几个标签,不需要用工具包翻译它们。
这是我到目前为止得到的:
# Language Settings
def display_selected(choice):
choice = variable.get()
if choice == "Deutsch":
languagelabel.config(text=str('Sprache:'))
Page1(self).label_search.config(text=str('Suche'))
else:
languagelabel.config(text=str('Language:'))
Page1(self).label_search.config(text=str('search'))
# Dropdown Menu for Languages
languages = ['Deutsch', 'English']
variable = StringVar()
variable.set(languages[0])
dropdown = OptionMenu(self, variable, *languages, command=display_selected)
同一 class 中的语言标签发生变化,但 class 'Page1' 中的 search_label 没有。没有任何反应,我是不是漏掉了什么?
我有点新手,所以任何指导and/or其他解决方案将不胜感激!
我能想到的一个选择是使用 StringVar()
s 来存储每个语言选项需要翻译的标签,并将这些变量分配给每个标签的 textvariable
参数
# EXAMPLE
lang_label_var = tk.StringVar()
label_search = tk.Label(
textvariable = lang_label_var
# whatever other attributes
)
search_label_var = tk.StringVar()
languagelabel = tk.Label(
textvariable = search_label_var
# whatever other attributes
)
您应该能够 set()
这些变量到适合英语或德语的单词,并遵循 choice = variable.get()
类似的逻辑。当设置分配给 textvariable
的变量时,每个项目的标签文本应自动更新。
if choice == 'Deutsch':
lang_label_var.set('Sprache:')
search_label_var.set('Suche')
elif choice == 'English':
lang_label_var.set('Language:')
search_label_var.set('Search')
所以,我希望用户能够用英语使用我的程序。他们应该能够通过下拉菜单切换到他们的语言。我的程序只有四页,每页都有几个标签,不需要用工具包翻译它们。
这是我到目前为止得到的:
# Language Settings
def display_selected(choice):
choice = variable.get()
if choice == "Deutsch":
languagelabel.config(text=str('Sprache:'))
Page1(self).label_search.config(text=str('Suche'))
else:
languagelabel.config(text=str('Language:'))
Page1(self).label_search.config(text=str('search'))
# Dropdown Menu for Languages
languages = ['Deutsch', 'English']
variable = StringVar()
variable.set(languages[0])
dropdown = OptionMenu(self, variable, *languages, command=display_selected)
同一 class 中的语言标签发生变化,但 class 'Page1' 中的 search_label 没有。没有任何反应,我是不是漏掉了什么?
我有点新手,所以任何指导and/or其他解决方案将不胜感激!
我能想到的一个选择是使用 StringVar()
s 来存储每个语言选项需要翻译的标签,并将这些变量分配给每个标签的 textvariable
参数
# EXAMPLE
lang_label_var = tk.StringVar()
label_search = tk.Label(
textvariable = lang_label_var
# whatever other attributes
)
search_label_var = tk.StringVar()
languagelabel = tk.Label(
textvariable = search_label_var
# whatever other attributes
)
您应该能够 set()
这些变量到适合英语或德语的单词,并遵循 choice = variable.get()
类似的逻辑。当设置分配给 textvariable
的变量时,每个项目的标签文本应自动更新。
if choice == 'Deutsch':
lang_label_var.set('Sprache:')
search_label_var.set('Suche')
elif choice == 'English':
lang_label_var.set('Language:')
search_label_var.set('Search')