Pular para o conteúdo

Tkinter com ítens de menu oriundos de um arquivo texto ... [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Tkinter com ítens de menu oriundos de um arquivo texto ... [RESOLVIDO]

Enviado em 02/07/2022 - 08:37h

Olá, parceiros.

A minha intenção é de criar um menu a partir de um arquivo texto onde não haja a necessidade de mexer no script quando houver uma nova linha no arquivo texto.

Penso que o erro ocorre por eu estar tentando atribuir um ítem de tabela (array) a um objeto mas não sei como solucionar.

Se algo do tipo é possível gostaria de saber dos parceiros uma alternativa a que venho tentando sem sucesso conforme o script em anexo que resumi afim de facilitar o entendimento.

# NA LINHA ABAIXO OCORRE ==> 'can't invoke "menu" command: application has been destroyed'
texto_dest_tab[0]=Menu(menubar, tearoff=False)

Grato a todos.

Rhaone da Silva

#!/usr/bin/python
'''
# /home/mint/menu.py + /home/mint/menu.txt

/home/mint/menu.txt ...

Linha 0
Linha 1
Linha 2
'''
#--------------------------------------------------------------------------
#import tkinter as tk
from tkinter import *

#--------------------------------------------------------------------------
root=Tk()
root.title('Python - Menu de Texto')
root.geometry('300x200')

menubar=Menu(root)
root.config(menu=menubar)

root.mainloop()

#--------------------------------------------------------------------------
texto_ponteiro=open('/home/mint/menu.txt','r')
texto_orig_tab=texto_ponteiro.readlines()
texto_dest_tab=[]

#--------------------------------------------------------------------------
for texto_orig_tab_linha in texto_orig_tab:
texto_dest_tab.append(texto_orig_tab_linha)

texto_ponteiro.close()

#--------------------------------------------------------------------------
# NA LINHA ABAIXO OCORRE ==> 'can't invoke "menu" command: application has been destroyed'
texto_dest_tab[0]=Menu(menubar, tearoff=False)
texto_dest_tab[0].add_command(label='Linha 0 Ok',command=root.quit)

#--------------------------------------------------------------------------
texto_dest_tab[1]=Menu(menubar, tearoff=False)
texto_dest_tab[1].add_command(label='Linha 1 Ok',command=root.quit)

#--------------------------------------------------------------------------
texto_dest_tab[2]=Menu(menubar, tearoff=False)
texto_dest_tab[2].add_command(label='Linha 2 Ok',command=root.quit)

#--------------------------------------------------------------------------
texto_menu_obj=Menu(menubar, tearoff=False)
texto_menu_obj.add_cascade(label='Linha 0',menu=texto_dest_tab[0])
texto_menu_obj.add_cascade(label='Linha 1',menu=texto_dest_tab[1])
texto_menu_obj.add_cascade(label='Linha 2',menu=texto_dest_tab[2])

Responder tópico

2. Re: Tkinter com ítens de menu oriundos de um arquivo texto ... [RESOLVIDO]

Enviado em 02/07/2022 - 13:45h

Uma dica:
-quando tiver um bug que não consegue ter uma ideia de como resolver, experimente copiar toda a mensagem de erro e pesquisar ela no google:
Exemplo:
Pesquisei no google o "'can't invoke "menu" command: application has been destroyed'" e deu esse link:
https://stackoverflow.com/questions/52818100/tkinter-tclerror-cant-invoke-button-command-application...
Ali, explica que o problema é porque vc está chamando o mainloop() antes de terminar de criar os objetos da janela, no caso do link, é o button.

3. Re: Tkinter com ítens de menu oriundos de um arquivo texto ... [RESOLVIDO]

Enviado em 02/07/2022 - 14:07h


SamL escreveu:

Uma dica:
-quando tiver um bug que não consegue ter uma ideia de como resolver, experimente copiar toda a mensagem de erro e pesquisar ela no google:
Exemplo:
Pesquisei no google o "'can't invoke "menu" command: application has been destroyed'" e deu esse link:
https://stackoverflow.com/questions/52818100/tkinter-tclerror-cant-invoke-button-command-application...
Ali, explica que o problema é porque vc está chamando o mainloop() antes de terminar de criar os objetos da janela, no caso do link, é o button.
GRATO AMIGO PELA DICA ... EU REALMENTE FUI ATRÁS DO PROBLEMA NO GOOGLE INCLUSIVE COM PROCURA EM INGLÊS ... MAS COMO SÃO MUITAS PÁGINAS APRESENTADAS ATÉ EU CHEGAR NAQUELA QUE RESOLVE O PROBLEMA DEPENDE-SE DA SORTE ... NESTE CASO AGRADEÇO O LINK E JÁ VOU LÁ AVERIGUAR ... ABRAÇOS ...

4. Re: Tkinter com ítens de menu oriundos de um arquivo texto ... [RESOLVIDO]

Enviado em 03/07/2022 - 23:40h

SamL ... ESQUECI DE ACRESCENTAR QUE ESTOU INICIANDO NO PYTHON E POR CONTA DISSO NAO DEVO TER PERCEBIDO ESTE PROBLEMA SENDO RESOLVIDO NOS LINKS DO GOOGLE ...

PELO LINK QUE ME APRESENTOU ... O PROBLEMA ERA DE ORDEM ... O ERRO ESTAVA NA CHAMADA PREMATURA DO ROOT.MAINLOOP () ... ESSE COMANDO DEVE SER O ULTIMO DO SCRIPT ... GRATO PELO AUXILIO ...

PROBLEMA RESOLVIDO!

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder