я использую это, чтобы получить да/нет от пользователя, но он открывает пустое окно:Python: Tkinter askyesno метод открывает пустое окно
from Tkinter import *
from tkMessageBox import *
if askyesno('Verify', 'Really quit?'):
print "ok"
И это пустое окно оленьей кожи уйти. Как я могу это предотвратить?
Это не будет работать:
Tk().withdraw()
showinfo('OK', 'Select month')
print "line 677"
root = Tk()
root.title("Report month")
months = ["Jan","Feb","Mar"]
sel_list = []
print "line 682"
def get_sel():
sel_list.append(Lb1.curselection())
root.destroy()
def cancel():
root.destroy()
B = Button(root, text ="OK", command = get_sel)
C = Button(root, text ="Cancel", command = cancel)
Lb1 = Listbox(root, selectmode=SINGLE)
for i,j in enumerate(months):
Lb1.insert(i,j)
Lb1.pack()
B.pack()
C.pack()
print "line 702"
root.mainloop()
for i in sel_list[0]:
print months[int(i)]
return months[int(sel_list[0][0])]
Но после этого диалога я использую другие диалоги, и по какой-то причине ваше решение останавливает мою программу. любая идея почему? – alwbtc
@alwbtc, Не могли бы вы показать код, который остановился? – falsetru
Tk(). Show() showinfo ('OK', 'Please select') root = Tk() root.title ("Отчетный месяц") months = ["Jan", "Feb", "Mar"] def get_sel(): sel_list.append (Lb1.curselection()) root.destroy() защиту отменить(): root.destroy() B = Кнопка (корень, текст = "OK", команда = get_sel) C = Кнопка (корень, текст = "Отмена", команда = отмена) Lb1 = Listbox (корень, selectmode = SINGLE) для I, J в перечислять (месяцы): Lb1.insert (I, J) Lb1.pack() B.pack() C.pack() print "line 702" root.mainloop() return months [int (sel_list [0] [0])] – alwbtc