gpt4 book ai didi

python - 如何获取用户从顶层组合框中选择的选项

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:16 25 4
gpt4 key购买 nike

我是 Python 和 Tkinter 的新手,正在尝试创建一个界面来搜索和绘制数据。我创建了一个非常简单的toplevel窗口从 combobox 获取值将从用户中选择。但是,我发现脚本只会打印列表中的第一项,如果 comboxlist2.current(0)已设置,否则无论在框中选择哪一项,都不会打印任何内容。我创建了一个示例脚本来测试这一点。如果我点击“搜索和创建”,那么返回值可以根据 comboxlist1 中的用户选择而改变。 ,而无论用户在 comboxlist2 中选择什么,它都会返回“1” 。请问问题出在哪里以及如何解决?

预先感谢您提供可能的建议或解决方案!

import tkinter as tk
from tkinter import ttk
from tkinter import *

def root_print():
reg_in = comboxlist1.get()
print(reg_in) #print the value selected

def on_click():
tl = Toplevel()
comvalue2 = tk.StringVar()
comboxlist2 = ttk.Combobox(tl,textvariable=comvalue2)
comboxlist2["values"] = ("1","2","3")
comboxlist2.grid()
comboxlist2.current(0) #select the first one as default
#mm = comboxlist2.get()
#print(mm) #print directly
go(comboxlist2,tl)
tl.wait_window()
return

def go(comboxlist2,tl):
mm = comboxlist2.get()
Button(tl,text='go', command=lambda:test(mm)).grid()

def test(mm):
print(mm) #do the same thing for the comboxlist2

root = Tk()
root.title('search') #create an interface
root.geometry('+400+200') #size and position

Label(text='region ').grid(row=2,column=0)
comvalue1 = tk.StringVar()
comboxlist1=ttk.Combobox(root,textvariable=comvalue1)
comboxlist1["values"]=("all","africa","asia","australia","canada","europe","mexico","southamerica","usa")
comboxlist1.grid(row=2,column=1)
comboxlist1.current(0)
Button(text='search & create', command=root_print).grid(row=0,column=4)
Button(text='click', command=on_click).grid(row=1, column=4)
loop = mainloop()#go!

最佳答案

这是工作代码,它应该可以满足您的需求。我已经删除了导入和一些无用的代码片段。

import tkinter as tk
from tkinter import ttk

def root_print():
reg_in = comboxlist1.get()
print(reg_in)

def on_click():
tl = tk.Toplevel()
comvalue2 = tk.StringVar()
comboxlist2 = ttk.Combobox(tl,textvariable=comvalue2)
comboxlist2["values"] = ("1","2","3")
comboxlist2.grid()
comboxlist2.current(0) #select the first one as default
tk.Button(tl,text='go', command=lambda: test(comboxlist2.get())).grid()
tl.wait_window()

def test(mm):
print(mm)

root = tk.Tk()
root.title('search') #create an interface
root.geometry('+400+200') #size and position

tk.Label(text='region ').grid(row=2,column=0)
comvalue1 = tk.StringVar()
comboxlist1=ttk.Combobox(root,textvariable=comvalue1)
comboxlist1["values"]=("all","africa","asia","australia","canada","europe","mexico","southamerica","usa")
comboxlist1.grid(row=2,column=1)
comboxlist1.current(0)
tk.Button(text='search & create', command=root_print).grid(row=0,column=4)
tk.Button(text='click', command=on_click).grid(row=1, column=4)
root.mainloop()

关于python - 如何获取用户从顶层组合框中选择的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56580915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com