我想构建GUI,并且每次按下按钮时Combobox都会添加一个按钮。但我找不到如何弄清楚或编码这个概念
而且,还有其他小部件吗?还是有其他方法可以建立我的概念? 请有人帮助我。
不使用tkinter的主要概念如下所示。我希望这个概念可以在Tkinter中完成。
[这是我在按一下按钮时尝试过的,所有组合框添加在一起的操作(这意味着当我更改列表名称时,所有组合框也会更改。)]
def Plus_EXT():
button_plus = Button(window3,justify = CENTER,command = Add_EXT, text= "+")
button_plus.grid(row=0,column=0)
def Add_EXT():
global Num
window3.update()
Num += 1
CEList1 = [x for x in os.listdir(cur_dir) if ('CE' in x.upper()) and ('.rpt' in x)]
RPT_EXT_file=ttk.Combobox(window3, values=CEList1,textvariable= EXT_String)
RPT_EXT_file.grid(row=8+Num,column=1)
RPT_EXT_file.set("FILE")
[不使用TKINTER的主要概念]
CE_Num= int(input("How Many EXTRA Chordae?: "))
User_File = input("Type the New File Name: ")
for Num_Of_EXT in range(CE_Num):
RPT_EXT_file = input("Type the RPT of EXTRA CHORDAE: ") + ".rpt"
EXTRA(User_File,RPT_EXT_file,Num_Of_EXT)
EXTRA_PLT(User_File,Num_Of_EXT)
我想要的输出是{每次我按下按钮时,都会在框架中添加一个带有单独工作列表的新组合框。}
答案 0 :(得分:0)
问题是所有Combobox小部件都与称为EXT_String
的同一个文本变量链接。因此,当您更改一个Combobox小部件的值时,它将更新所有这些中的相同值。
我建议保留这样一个变量的列表,并在循环中使用NUM
为该变量分配索引以分配textvariable。
更新:
仅基于Add_EXT
方法中共享的有限代码的示例:
global var_list
var_list.append(IntVar()) #Or StringVar(), whatever you are using
RPT_EXT_file=ttk.Combobox(window3, values=CEList1,textvariable=var_list[-1])