Python - возврат на предыдущую страницу и страницу .destroy () в одну кнопку - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть страница вывода, которая отображает информацию после поиска и выбора.На странице вывода у меня есть кнопка с надписью «Вернуться к поиску», которая вернется к окну поиска (это два разных окна).Как я могу заставить кнопку возврата вернуться назад и одновременно закрыть окно вывода?

Я попытался поместить обе функции в одну функцию:

def backandclose():
    lambda: os.system("python Search.py"))
    root.quit

root = Tk()

back_button = Button(root, text="<<Back To Search", command=backandclose)
back_button.pack()

root.mainloop()

Этот код, кажется, делаетничего такого.Я знаю, если поставить рядом с кнопкой только:

command = lambda: os.system("python Search.py")

, откроется мое окно Search.py.

Я также хочу, чтобы .quit () или .destroy () моего исходного окна, чтобы при нажатии кнопки «Назад» открывался Search.py ​​и закрывалось текущее окно.

1 Ответ

0 голосов
/ 11 апреля 2019

Как отметил @Bryan Oakley в комментариях:

root.quit не совпадает с root.quit(). Бывший ничего не делает.

Однако, возможно, для вашей задачи более уместно использовать окно tk.Toplevel, которое вы открываете при необходимости, а затем закрываете.

Может быть что-то вроде этого:

import tkinter as tk

def spawn_top():
    top = tk.Toplevel(app, bg='cyan')
    top.title('additional info')
    top.geometry('200x100')
    tk.Button(top, text='back to search', command=top.destroy).pack()

app = tk.Tk()
app.geometry('200x200')
app.title('search window')
tk.Button(app, text='spawn additional info', command=spawn_top).pack()

app.mainloop()

(Я добавил кнопку back to search в порожденном верхнем уровне, но это не совсем необходимо, так как закрытие этого окна автоматически вернет фокус в корневое приложение.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...