Я новичок в Python и Tkinter и пытался создать интерфейс для поиска и печати данных.Я создал очень простое окно toplevel
, чтобы получить значения из combobox
, которые будут выбраны из пользователей.Тем не менее, я считаю, что скрипт будет печатать только первый элемент в списке, если установлен comboxlist2.current(0)
, или он ничего не будет печатать, независимо от того, какой из них выбран в поле.Я создал образец сценария, чтобы проверить это.Если я нажму на «поиск и создание», то возвращаемые значения могут измениться в соответствии с выбором пользователя в comboxlist1
, тогда как все это вернет «1», независимо от того, что пользователь выбрал в comboxlist2
.Могу ли я спросить, где проблема и как ее решить?
Заранее благодарим за возможные предложения или решения!
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!