Python 如何在每个新条目后更改combo的值-Tkinter

Python 如何在每个新条目后更改combo的值-Tkinter,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我想知道如何在Tkinter GUI中的每个新条目之后更改组合框的值 下面是我从json文件中提取值并在组合框中显示的代码。但是我也在GUI中的json文件中添加新值,但是,我想知道如何在不再次打开GUI的情况下向这个组合框添加新值以更新值。我希望combo中的值在json文件中添加新条目后立即更改 coursefile = open('Course.json') courserecord = json.load(coursefile) coursenamerecord = [] for ite

我想知道如何在Tkinter GUI中的每个新条目之后更改组合框的值

下面是我从json文件中提取值并在组合框中显示的代码。但是我也在GUI中的json文件中添加新值,但是,我想知道如何在不再次打开GUI的情况下向这个组合框添加新值以更新值。我希望combo中的值在json文件中添加新条目后立即更改

coursefile = open('Course.json')
courserecord = json.load(coursefile)
coursenamerecord = []
for items in courserecord["COURSES"]:
    coursenamerecord.append(items["Course Name"])


coursenamelabel = Label(tab5, text='Course Name:', font=('Open Sans Semibold', 12))
coursenamelabel.grid(row=1, column=0, padx=175, sticky='e')
coursenameentry = ttk.Combobox(tab5, width= 66, value=(coursenamerecord))
coursenameentry.place(x= 475, y= 183)coursefile = open('Course.json')


因此,您已经将这些值存储在列表中。然后从您在最后一行中创建的条目小部件中获取需要存储的值(假设您要显示的值是从这里获得的)。用此值附加列表
coursenamerecord


注意:请浏览我的个人资料,找到一个问题“将框架(在一个文件中)应用到根窗口(在另一个文件中)”。我希望这里有一些解释。

为此,您可以使用
combobox.config()
。按下按钮后获取用户条目,然后将该值附加到列表中,然后重新配置该值,如下所示 你可以做类似的事情

这里有一个例子

从tkinter导入*
从tkinter导入ttk
def update():
lst.append(entry.get())
配置(值=lst)
lst=[“数学”、“科学”、“语言”]
root=Tk()
var=StringVar()
条目=条目(根)
entry.pack()
combo=ttk.Combobox(根,textvariable=var,values=lst)
combo.pack()
btn=按钮(根,text='Update',command=Update)
btn.pack()
root.mainloop()

有一个
ttk.Combobox.set
方法可以使用,也可以通过绑定或按钮执行函数。在JSON文件中添加新条目后,您可以使用更新后的
coursenamerecord
coursenamerecord
添加相同的新条目,并更新
coursenameentry
values
选项。我不明白您如何提供一些链接或代码来找出问题。这是一个请求。您是在修改原始文件还是在通过GUI应用程序修改它?因此,每当列表中有新元素时,您都想修改组合框?谢谢您的帮助。我会试试这个方法,看看能不能得到我想要的。我已经浏览了你的个人资料,看到了你的问题,所以,你想在你的主文件上显示你在另一个文件中创建的框架(我希望有意义)?绝对是的,我不是说这是不可能的,但简单有效的方法是你在主文件中创建框架,在其他文件中创建函数。然后导入在主文件中创建框架所需的函数。我之所以这么说,是因为你必须指定一个框架将显示的位置,所以你必须做得很好。。复杂的(不是真正的)编码来改变这一点。