问题在于StringVar的实例正在被垃圾回收。这是因为由于编写代码的方式,它是一个局部变量。
一种解决方案是使用一个类,以使您的StringVar持久存在:
from tkinter import Tk, StringVar, ttkclass Application: def __init__(self, parent): self.parent = parent self.combo() def combo(self): self.box_value = StringVar() self.box = ttk.Combobox(self.parent, textvariable=self.box_value,state='readonly') self.box['values'] = ('A', 'B', 'C') self.box.current(0) self.box.grid(column=0, row=0)if __name__ == '__main__': root = Tk() app = Application(root) root.mainloop()


