在tkinter

我正在寻找一种根据您在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当前选择的选项来更改页面

谢谢大家!

cbfdhtrhyt 回答:在tkinter

现在是第四次编辑或类似的操作,但这就是我想出的最终解决方案。

#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()

本文链接:https://www.f2er.com/3132571.html

大家都在问