Como fechar uma nova janela criada por uma função

Viraj Hodavdekar

Eu tenho uma IU do tkinter que tem um quadro, o quadro tem 2 telas, 1 tela tem um botão que cria uma janela de nível superior (chamada top). Essa janela de nível superior tem um botão CLOSE que fecha a janela superior (o que é feito facilmente por top.destoy). Mas, eu preciso do botão CLOSE para também chamar uma função que faz algo. Portanto, como o botão CLOSE não pode ser configurado para chamar something () e destroy (), configurei o botão para chamar sequence () que chama something () e top.destroy ().

Quando eu executo isso e clico no botão CLOSE, recebo o nome de erro 'top' não está definido. Eu sei por que está acontecendo, mas não sei como consertar isso. Alguma ideia?

import time
import tkinter as tk
import tkinter.font
from tkinter import*

window = Tk()
window.geometry("1920x1080")
window.title("HOME")

f1 = Frame (window, bg="white")
f1.pack()

c1 = Canvas(f1, height=200, width=1960, bg="white")
label = Label(f1, text="Running Apps", font= "Cambria 30 bold").pack()
c1.pack(anchor=N)

r = c1.create_rectangle(400, 50, 550, 150, fill="white", activefill="black")
r2 = c1.create_rectangle(550, 50, 700, 150, fill="white", activefill="black")

c2 = tk.Canvas(f1, height=800, width=1960,  bg="white")
c2.pack(side="bottom")

def sequence():
    top.destroy()
    c1.itemconfig(r, fill="white")  #something()


def openApp1():
    c1.itemconfig(r, fill="red")
    top = Toplevel()
    top.geometry("1920x1080")
    top.title("App 1")

    cvs1 = tk.Canvas(top, height="880", width="800", bg="red")
    Closebutton = Button(cvs1, text="CLOSE", command=sequence, padx="20", pady="0", justify="center", height="1", width="6", font="Cambria 20 bold",         borderwidth="7")
    cvs1.create_window(400, 600, window=Closebutton)
    label1 = Label(top, text="I am App 1", font= "Cambria 50 bold")
    label1.place(x=630, y=100)
    cvs1.pack()

button1= Button(c2, bg="red", text="App 1", command=openApp1, padx="20", pady="10", justify="center", height="3", width="10", font="Cambria 30 bold", borderwidth="10")
c2.create_window(100, 200, anchor=NW, window=button1)

window.mainloop()
fácil

Use global topdentro openApp1e irá atribuir TopLevela variável global (em vez de variável local) e irá resolver o problema emsequence

def openApp1():
    global top

    c1.itemconfig(r, fill="red")
    top = Toplevel()

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como faço para fechar uma janela do Tkinter quando uma nova janela do Tkinter é aberta?

Como fechar uma janela modal aberta quando uma nova abre?

Por que o iTerm está movendo uma janela automaticamente ao abrir / fechar uma nova guia?

Tkinter - Como posso fazer um botão pode criar uma nova janela e fechar a janela principal

como abrir uma nova janela e fechar a janela atual quando clico no botão Java GUI?

Como fechar uma janela cmd e abrir uma nova para continuar o script

Como fechar uma janela cmd e abrir uma nova para continuar o script

Como faço para mostrar uma nova janela após fechar a MainWindow?

Como obter a guia ativa atual de uma nova janela pop-up criada por chrome.windows

Como fechar uma janela no GWT?

Como fechar uma janela modal?

Como usar uma nova tabela criada em uma transação

Como altero o tamanho de uma tela do tkinter por meio de uma nova janela?

Como fechar uma única janela no Tkinter sem fechar a janela principal?

Emitir iteração por meio de valores de uma função criada anteriormente em uma nova função

Como faço para fechar uma janela do tkinter?

Como posso fechar uma janela após usar o Turtle

Acione uma função para fechar uma janela modal no ReactJS

Como fechar uma nova janela pop-up do Controller no JavaFX

Como fechar programaticamente uma janela matplotlib?

Como criar um favorito do navegador que abre em uma nova janela por padrão?

Como posso adicionar uma nova coluna calculada usando uma função de janela à minha consulta SQL?

Como posso adicionar uma nova coluna calculada usando uma função de janela à minha consulta SQL?

tkinter python: deseja fechar a janela inicial e abrir uma nova

Como fechar uma janela do simulador sem fechar todas?

Aplicação AWS CDK como "referenciar" a função aws lambda já criada (sem criar uma nova em uma pilha)?

Como faço para acessar uma nova célula criada por Cell (i, j) .Split em Powerpoint VBA

Como fechar uma determinada janela sem fechar todo o aplicativo no Tkinter?

Como canalizar a saída da função de janela diretamente para uma nova função de janela no SQL?

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo