Python - tkinter组合框保存值

时间:2018-03-26 16:29:21

标签: python tkinter combobox

我正在尝试使用tkinter制作一个带有以下示例的组合框

import tkinter as tk
from tkinter import ttk

tkwindow = tk.Tk()

cbox = ttk.Combobox(tkwindow, values=['2.4', '5'], state='readonly')
cbox.grid(column=0, row=0)

tkwindow.mainloop()

我想从组合框中选择一个选项时,我想选择'2.4'。然后我可以将'2.4'存储在变量中,稍后在我的代码中使用。 我试着在这里搜索,但所有情况都只是打印一个值。我不想打印,我想存储一个值。

有关于此的任何想法吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

要执行您要完成的任务,我们可以使用bind()方法和get()方法。

我在注释部分的代码中注意到(现在看起来已被删除)您尝试执行c = cbox.get()但是此值未更新,因为它仅在程序初始化时被调用一次。相反,我们可以直接在cbox.get()语句中使用if,然后将该值分配给全局变量c

我们需要一个在组合框中选择项目期间触发Selected事件时可以调用的函数。我们可以使用bind()方法指定在使用c方法触发此事件时要调用的函数。

我已将你粘贴在评论中的代码重新格式化为功能性的代码。

更新

我添加了一个按钮来打印当前存储的import tkinter as tk from tkinter import ttk tkwindow = tk.Tk() c = "" # This function will check the current value of cbox and then set # that value to the global variable c. def check_cbox(event): global c if cbox.get() == '2.4': c = cbox.get() # this will assign the variable c the value of cbox if cbox.get() == '5': c = cbox.get() def print_c_current_value(): print(c) cbox = ttk.Combobox(tkwindow, values=['2.4', '5'], state='readonly') cbox.grid(column=0, row=0) # This bind calls the check_box() function when an item is selected. cbox.bind("<<ComboboxSelected>>", check_cbox) tk.Button(tkwindow, text="Print C", command=print_c_current_value).grid(column=0, row=1) tkwindow.mainloop() 值,以便您可以在每次从“组合框”中选择后检查该值。

见下面的代码。

emulator