python - 在 tkinter 中使用 OptionMenu 更新窗口
问题描述
我正在寻找一种基于您在 OptionMenu 中选择的选项来更改窗口内容的方法。它应该有 3 个不同的选项,即“介绍”、“加密”和“解密”。我有创建 OptionMenu 的代码,但现在我想知道如何修改它们以显示不同的页面,具体取决于所选的页面。有人可以帮我吗?我正在使用 python 3
例如:
from tkinter import *
OptionList = [
"Einführung",
"Verschlüsseln",
"Entschlüsseln"
]
window = Tk()
window.geometry('200x200')
variable = StringVar(window)
variable.set(OptionList[0])
opt = OptionMenu(window, variable, *OptionList)
opt.config(width=90, font=('Calbri', 12))
opt.pack(side="top")
window.mainloop()
这将产生一个带有 OptionMenu 的窗口,其中包含我在上面写的三个选项(仅用德语),现在我想根据 OptionMenu 的当前选择选项更改页面
多谢你们!
解决方案
现在这是第四次编辑或其他内容,但这是我想出的最终解决方案。
#coding=utf-
import tkinter as tk
from tkinter import *
window = Tk()
window.geometry('200x200')
OptionList = ["Einführung", "Verschlüsseln", "Entschlüsseln"]
class App:
def __init__(self, master):
self.choice_var = tk.StringVar()
self.choice_var.set(OptionList[0])
opt = OptionMenu(window, self.choice_var, *OptionList, command=self.switch)
opt.config(width=90, font=('Calbri', 12))
opt.pack(side="top")
self.random_label1 = tk.Label(window, text="Welcome content here")
self.random_label2 = tk.Label(window, text="Encrypt content here")
self.random_label3 = tk.Label(window, text="Decrypt content here")
self.random_label1.pack()
self.random_label2.pack()
self.random_label3.pack()
self.label_info1 = self.random_label1.pack_info()
self.label_info2 = self.random_label2.pack_info()
self.label_info3 = self.random_label3.pack_info()
self.switch()
def switch(self, *args):
var = str(self.choice_var.get())
if var == "Einführung":
self.random_label1.pack(self.label_info1)
self.random_label2.pack_forget()
self.random_label3.pack_forget()
if var == "Verschlüsseln":
self.random_label2.pack(self.label_info2)
self.random_label1.pack_forget()
self.random_label3.pack_forget()
if var == "Entschlüsseln":
self.random_label3.pack(self.label_info3)
self.random_label2.pack_forget()
self.random_label1.pack_forget()
myApp = App(window)
window.mainloop()
推荐阅读
- javascript - React - 将图像框包装器格式化为中心
- angular - 针对 Apache Karaf Froms 身份验证的 Angular Ajax 身份验证
- validation - 使用 Slice 的指针转换接口以迭代其值
- google-analytics - GA4 - GA4 中的用户 ID 报告和 BigQuery 中的利用
- excel - 由于循环引用,Excel 文件无法打开
- vba - VBA for MS-Word 中页眉和页脚中的内容控件中的超链接
- xpath - 选择位于两个元素之间的元素
- python - Python sorted() ab = ab0
- javascript - 您如何使用由 javascript 控制的 php 进行复选框输入?
- parsing - getPageSource 不适用于 RSelenium