首页 > 解决方案 > Tkinter - 在下拉列表中选择不同选项时如何更新界面

问题描述

我正在使用tkinter.

我创建了一个下拉列表,界面可以根据不同的选择进行更改,但是在第二次选择时,新界面(某些条目或文本)似乎只覆盖了第一个界面。

我想知道如何删除第一个界面,以便界面可以立即更新下拉列表中的选择。

代码如下:</p>

import tkinter as tk
import tkinter.ttk
def secdata( *args ):
    t = sectype.get()
    if t=='Rec_Shape':
        tk.ttk.Label(monty1, text="REC_Width").grid(column=0, row=1)
        wid=tk.StringVar()
        widdata=tk.ttk.Entry(monty1,width=5,textvariable=wid)
        widdata.grid(column=1,row=1)
        tk.ttk.Label(monty1, text="REC_Height").grid(column=0, row=2)
        hei=tk.StringVar()
        heidata=tk.ttk.Entry(monty1,width=5,textvariable=hei)
        heidata.grid(column=1,row=2)
    else:
        tk.ttk.Label(monty1, text="Flange_Width").grid(column=0, row=1)
        wid1=tk.StringVar()
        wid1data=tk.ttk.Entry(monty1,width=5,textvariable=wid1)
        wid1data.grid(column=1,row=1)
        tk.ttk.Label(monty1, text="Web_Width").grid(column=0, row=2)
        wid2=tk.StringVar()
        wid2data=tk.ttk.Entry(monty1,width=5,textvariable=wid2)
        wid2data.grid(column=1,row=2)
        tk.ttk.Label(monty1, text="Flange_Height").grid(column=0, row=3)
        hei1=tk.StringVar()
        hei1data=tk.ttk.Entry(monty1,width=5,textvariable=hei1)
        hei1data.grid(column=1,row=3)
        tk.ttk.Label(monty1, text="Total_Height").grid(column=0, row=4)
        hei2=tk.StringVar()
        hei2data=tk.ttk.Entry(monty1,width=5,textvariable=hei2)
        hei2data.grid(column=1,row=4)
window=tk.Tk()
window.title('Section Analysis')
window.geometry('500x400')
tabControl=tk.ttk.Notebook(window)
tab1=tk.ttk.Frame(tabControl)
tabControl.add(tab1,text='Bending')
tabControl.pack(expand=1,fill='both')

monty1=tk.ttk.LabelFrame(tab1,text='Bending')
monty1.grid(column=0, row=0, padx=8, pady=4)
tk.ttk.Label(monty1, text="Sectype:").grid(column=0, row=0, sticky='W')
sectype=tk.ttk.Combobox(monty1,state='readonly')
sectype.grid(column=1, row=0)
sectype['value']=('Rec_Shape','T_Shape')
sectype.current(0)
sectype.bind("<<ComboboxSelected>>",secdata)
monty1.mainloop()
window.mainloop()

标签: pythonpython-3.xpython-2.7tkinter

解决方案


推荐阅读