Размещение Tkinter Frame в другом кадре - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь поэкспериментировать и заставить кнопку отображать метку только при нажатии кнопки, вместо этого она открывает другое окно графического интерфейса. Основной кадр называется секретным сообщением. Внутри этого, когда я нажимаю на кнопку, оно должно заменить пустое место с меткой в ​​row=2.

Может кто-нибудь объяснить мне, как я могу поднять ярлык, а не просто открыть новое окно. Весь код функционален, но я хочу по-другому, я новичок в Python.

from tkinter import *

def topLevel():
    top=Toplevel()
    top.geometry("300x200")

root=Tk()
root.title("Secret Message")

button1 = Button(text="Push this button to see hidden message!", width =60, command=topLevel)
button1.grid(row=1, column=0)    

label1 = Label(width=50, height=10, background="WHITE", text= "There is no secret!")
label1.grid(row=2, column=0)

root.mainloop()

1 Ответ

0 голосов
/ 05 ноября 2018

Заголовок вашего вопроса не имеет ничего общего с вашим вопросом.

Чтобы обновить геометрию вашего ярлыка, вам просто нужно сообщить функции, где вы хотите разместить ярлык на контейнере, в котором вы установили ярлык. В этом случае вы не определяете контейнер, поэтому виджеты по умолчанию устанавливаются в корневое окно.

Вот рабочий пример, который обновит геометрию метки при нажатии кнопки.

from tkinter import *


root=Tk()
root.title("Secret Message")

def grid_label():
    label1.config(text="There is no secret!")

Button(root, text="Push this button to see hidden message!", width=60, command=grid_label).grid(row=1, column=0)    
label1 = Label(root, width=50, height=10, background="WHITE")
label1.grid(row=2, column=0)

root.mainloop()
...