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

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

Rhaone da Silva
Rhaone

(usa Linux Mint)

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])



  


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

Samuel Leonardo
SamL

(usa XUbuntu)

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]

Rhaone da Silva
Rhaone

(usa Linux Mint)

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]

Rhaone da Silva
Rhaone

(usa Linux Mint)

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!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts