comboxlist.bind代码中选择列表值后马上执行了,想让选择后,在添加一个点击按钮的事件再执行,而列表的选择值作为主程序的一个输入参数,怎么实现,比如下列列表有数字1-10,十个数字,选择1后,在点击一个按钮继续执行程序,相当于1作为主程序某个参数
import tkinter
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
def go(*args): # 处理事件,*args表示可变参数
k = comboxlist.get()
win = tkinter.Tk() # 构造窗体
comvalue = tkinter.StringVar() # 窗体自带的文本,新建一个值
comboxlist = ttk.Combobox(win, textvariable=comvalue) # 初始化
comboxlist["values"] = ("1", "2", "3", "4")
comboxlist.current(0) # 选择第一个
comboxlist.bind("<<ComboboxSelected>>", go)
comboxlist.pack()
win.mainloop() # 进入消息循环
我的臆想:
下拉列表选择→点击按钮→得出comboxlist.bind结果作为输入→主程序继续执行
无
无,或者有没有其他简单的实现方法
下拉菜单选择好之后不马上执行,而是再添加一个点击按钮事件再执行,而想要的是comboxlist.bind执行结果作为主程序的输入参数
那就列表不要绑定事件。
按钮事件里取访问 下拉框 的值,再做处理即可
import tkinter
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
def go(*args): # 处理事件,*args表示可变参数
k = comboxlist.get()
print("调用操作,参数",k)
win = tkinter.Tk() # 构造窗体
comvalue = tkinter.StringVar() # 窗体自带的文本,新建一个值
comboxlist = ttk.Combobox(win, textvariable=comvalue) # 初始化
comboxlist["values"] = ("1", "2", "3", "4")
comboxlist.current(0) # 选择第一个
comboxlist.pack()
btn = tkinter.Button(win,text="操作")
btn.bind('<Button-1>',func=go)
btn.pack()
# comboxlist.bind("<<ComboboxSelected>>", go)
win.mainloop() # 进入消息循环
import tkinter
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
def go(*args): # 处理事件,*args表示可变参数
#选择后值存储到变量里
comvalue.set(comboxlist.get())
#然后程序中可以用这个方法得到值
print(comvalue.get())
win = tkinter.Tk() # 构造窗体
comvalue = tkinter.StringVar() # 窗体自带的文本,新建一个值
#改动
comboxlist = ttk.Combobox(win,) # 初始化
comboxlist["values"] = ("1", "2", "3", "4")
comboxlist.current(0) # 选择第一个
comboxlist.bind("<<ComboboxSelected>>", go)
comboxlist.pack()
win.mainloop() # 进入消息循环