每当我在Tkinter中按下按钮时,如何添加组合框?

时间:2019-02-01 05:34:46

标签: python tkinter

我想构建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)

我想要的输出是{每次我按下按钮时,都会在框架中添加一个带有单独工作列表的新组合框。}

1 个答案:

答案 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])