Работая над сценарием, который создает окно Toplevel с переменным количеством кнопок на основе списка вариантов. Окно имеет настройку рамки-каркаса, чтобы обеспечить вертикальную прокрутку. Когда одна из кнопок нажимается, она отправляет информацию в главное окно, и я хочу, чтобы окно Toplevel закрывалось, но с помощью «.destroy ()» оставляет окно открытым, пустым с помощью полоса прокрутки. Любая помощь, указывающая на мою ошибку, ценится. П.с. Я самоучка и очень любитель. < /P>
import tkinter
from tkinter import *
from tkinter import ttk
from functools import partial
placelist = ["99999|123|FAKE ST|44|MADEUP TOWNSHIP","99999|555|NOTAREAL AVE|44|MADEUP TWP"]
proj = tkinter.Tk()
proj.geometry('500x500')
def create_popup_3():
popup3 =tkinter.Toplevel()
popup3.geometry("500x500")
popup3.title("Choose Result")
main_frame = Frame(popup3)
main_frame.grid(column=0,row=1)
my_canvas = Canvas(main_frame)
my_canvas.pack(side = LEFT,fill=BOTH, expand=1)
my_scrollbar = tkinter.Scrollbar(main_frame,orient=VERTICAL,command = my_canvas.yview)
my_scrollbar.pack(side=RIGHT, fill = Y)
my_canvas.configure(yscrollcommand=my_scrollbar.set)
second_frame = Frame(my_canvas,width = 400,height = 500)
my_canvas.bind('', lambda e: my_canvas.configure(scrollregion = my_canvas.bbox("all")))
for option3 in placelist:
optionsplit = option3.split('|')
placesin = optionsplit[0].strip()
s_num = optionsplit[1].strip()
s_name = optionsplit[2].strip()
twp = optionsplit[3].strip()
twp_name = optionsplit[4].strip()
button3 = tkinter.Button(second_frame, text= s_num + ' ' + s_name + ', ' + twp_name, command=partial(button_click_3, option3, second_frame))
button3.pack(pady=10)
optionwindow = my_canvas.create_window((0,0),window = second_frame, anchor = "nw")
def button_click_3(option3, popup3):
optionsplit = option3.split('|')
munistrin = str(optionsplit[0]).strip()
s_name = str(optionsplit[2]).strip()
s_num = str(optionsplit[1]).strip()
twp = str(optionsplit[3]).strip()
Street_Rin.delete(0,END)
Street_Rin.insert(0,munistrin)
Street_Name.delete(0,END)
Street_Name.insert(0,s_name)
Street_Address.delete(0,END)
Street_Address.insert(0,s_num)
Muni_Code.delete(0,END)
Muni_Code.insert(0,twp)
popup3.destroy()
sendbutton = tkinter.Button(text = ' SEND ', command = create_popup_3)
sendbutton.pack()
Street_Address = Entry(bd=1, width = 7, justify = LEFT, font=("Courier New", 12), textvariable="newadnum")
Street_Address.pack()
Street_Name = Entry(bd=1, width = 23, font=("Courier New", 12), textvariable="newstr")
Street_Name.pack()
Apt_No = Entry(bd=1, width = 5, font=("Courier New", 12), textvariable="newapt")
Apt_No.pack()
Muni_Code= Entry(bd=1, width = 5, font=("Courier New", 12), textvariable="muni")
Muni_Code.pack()
Street_Rin = Entry(bd=1, width = 7, justify = LEFT, font=("Courier New", 12), textvariable="rin")
Street_Rin.pack()
proj.mainloop()
Подробнее здесь: https://stackoverflow.com/questions/794 ... e-properly
Как получить окно tkinter toplevel, чтобы правильно закрыться? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение