输入框的数量最多,然后尝试切换到输入框较少的一个,这样不会删除不必要的输入boxes@BillalBEGUERADJ这是我试图欺骗python做我想让它做的事情的尝试。我想如果我给它一个虚拟的输入框,它会在我切换选择时删除我不需要的输入框。它显然不起作用。
输入框的数量最多,然后尝试切换到输入框较少的一个,这样不会删除不必要的输入boxes@BillalBEGUERADJ这是我试图欺骗python做我想让它做的事情的尝试。我想如果我给它一个虚拟的输入框,它会在我切换选择时删除我不需要的输入框。它显然不起作用。,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,输入框的数量最多,然后尝试切换到输入框较少的一个,这样不会删除不必要的输入boxes@BillalBEGUERADJ这是我试图欺骗python做我想让它做的事情的尝试。我想如果我给它一个虚拟的输入框,它会在我切换选择时删除我不需要的输入框。它显然不起作用。 import tkinter as tk from tkinter.ttk import * master = tk.Tk() master.title("Gas Calculator") v = tk.IntVar() combo = C
输入框的数量最多,然后尝试切换到输入框较少的一个,这样不会删除不必要的输入boxes@BillalBEGUERADJ这是我试图欺骗python做我想让它做的事情的尝试。我想如果我给它一个虚拟的输入框,它会在我切换选择时删除我不需要的输入框。它显然不起作用。
import tkinter as tk
from tkinter.ttk import *
master = tk.Tk()
master.title("Gas Calculator")
v = tk.IntVar()
combo = Combobox(master)
def callbackARS(eventObject):
ARDist=(comboARS.get())
if ARDist == "Truncated Normal":
a1 = tk.Entry(master)
a2 = tk.Entry(master)
a3 = tk.Entry(master)
#attempt to create a dummy input box that isnt needed and then delete it at the end of the code
a4 = tk.Entry(master)
a1.grid(row=3, column=4)
a2.grid(row=3, column=5)
a3.grid(row=3, column=6)
a4.grid(row=3, column=7)
tk.Label(master, text="Variable", padx=20, width=10, bg = "light blue").grid(row=2,column=4)
tk.Label(master, text="Area", padx=20, width=10, bg = "light blue").grid(row=2,column=5)
tk.Label(master, text="Thickness", padx=20, width=10, bg = "light blue").grid(row=2,column=6)
tk.Label(master, text="", padx=20, width=10, bg = "light blue").grid(row=2,column=7)
#attempt to create a dummy input box that isnt needed and then delete it at the end of the code
a4.grid_remove()
if ARDist == "Normal":
b1 = tk.Entry(master)
b2 = tk.Entry(master)
b3 = tk.Entry(master)
b4 = tk.Entry(master)
b5 = tk.Entry(master)
b1.grid(row=3, column=4)
b2.grid(row=3, column=5)
b3.grid(row=3, column=6)
b4.grid(row=3, column=7)
b5.grid(row=3, column=8)
tk.Label(master, text="a", padx=20, width=10, bg = "light blue").grid(row=2,column=4)
tk.Label(master, text="Aa", padx=20, width=10, bg = "light blue").grid(row=2,column=5)
tk.Label(master, text="aaa", padx=20, width=10, bg = "light blue").grid(row=2,column=6)
tk.Label(master, text="aaaa", padx=20, width=10, bg = "light blue").grid(row=2,column=7)
if ARDist == "Discrete":
a1 = tk.Entry(master)
a2 = tk.Entry(master)
a3 = tk.Entry(master)
a4 = tk.Entry(master)
a1.grid(row=3, column=4)
a2.grid(row=3, column=5)
a3.grid(row=3, column=6)
a4.grid(row=3, column=7)
#Distribution selction
comboARS = Combobox(master)
comboARS['values']= ("Truncated Normal", "Normal", "Discrete")
comboARS.current(0) #set the selected item
comboARS.grid(row=3, column=3)
comboARS.bind("<<ComboboxSelected>>", callbackARS)
import tkinter as tk
from tkinter import ttk
master = tk.Tk()
my_frame = tk.Frame()
my_frame.grid(row=0, column=1)
# create one set of widgets in a frame
for num in range(1, 6):
tk.Label(master=my_frame).grid(row=0,column=num)
tk.Entry(master=my_frame).grid(row=1, column=num)
def detect_selection(eventobject):
the_selection = eventobject.widget.get()
# hide all widgets
for item in my_frame.winfo_children():
item.grid_remove()
show_idx__wigets = 6
if the_selection == '3':
change_labeltext(('a', 'b', 'c'), 6)
if the_selection == '4':
show_idx__wigets = 8
change_labeltext(('d', 'e', 'f', 'g'), 8)
if the_selection == '5':
show_idx__wigets = 10
change_labeltext(('h', 'i', 'j', 'k', 'l'), 10)
# reveal only desired number of widgets
show_widgets(show_idx__wigets)
def show_widgets(upto_widgetposition):
for item in my_frame.winfo_children()[:upto_widgetposition]:
item.grid()
def change_labeltext(labeltext, upto_widgetposition):
for txt, item in zip(
labeltext, my_frame.winfo_children()[:upto_widgetposition:2]):
item['text'] = txt
combo = ttk.Combobox(master,
values=(3,4,5))
combo.grid(row=0, column=0, sticky='s')
combo.bind('<<ComboboxSelected>>', detect_selection)
master.mainloop()