2017-01-07 32 views
0

Я разрабатываю простую программу, и мне нужно получить значение из выпадающего списка. Это легко, когда combobox находится в первых созданных окнах, но, например, если у меня есть два окна, а поле со списком - во втором, я не могу прочитать значение.Получить значение combobox в python

Например:

from tkinter import * 
from tkinter import ttk 

def comando(): 
    print(box_value.get()) 

parent = Tk() #first created window 
ciao=Tk()  #second created window 
box_value=StringVar() 
coltbox = ttk.Combobox(ciao, textvariable=box_value, state='readonly') 
coltbox["values"] = ["prova","ciao","come","stai"] 
coltbox.current(0) 
coltbox.grid(row=0) 
Button(ciao,text="Salva", command=comando, width=20).grid(row=1) 
mainloop() 

Если изменить родительский виджет от Ciao родителю это работает! Может ли кто-нибудь объяснить мне? Спасибо заранее и извините за мой плохой английский

+2

Tkinter не обрабатывает хорошо два главных окна, так что второй должен быть полным первого. –

ответ

1

У вас не может быть двух окон Tk(). нужно быть Toplevel.

, чтобы получить переменную вы box_value.get()

пример выпадающего списка

class TableDropDown(ttk.Combobox): 
    def __init__(self, parent): 
     self.current_table = tk.StringVar() # create variable for table 
     ttk.Combobox.__init__(self, parent)# init widget 
     self.config(textvariable = self.current_table, state = "readonly", values = ["Customers", "Pets", "Invoices", "Prices"]) 
     self.current(0) # index of values for current table 
     self.place(x = 50, y = 50, anchor = "w") # place drop down box 

печати (self.current_table.get())

+0

Спасибо! Оно работает! теперь я понимаю – Damien

 Смежные вопросы

  • Нет связанных вопросов^_^