Ir para conteúdo
Fórum Script Brasil
  • 0

Tkinter com ítens de menu oriundos de um arquivo texto ...


Rhaone da Silva

Pergunta

Olá, parceiros.

Tkinter com ítens de menu oriundos de um arquivo texto ...

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

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Em 02/07/2022 em 16:48, ArteEN disse:

acredito que o possivel erro esta na chamada prematura do root.mainloop(), esse comando deve ser o ultimo do script

ArteEN ... RESOLVIDO! ... O PROBLEMA ERA MESMO DE ORDEM ... "O ERRO ESTAVA NA CHAMADA PREMATURA DO ROOT.MAINLOOP (), ESSE COMANDO DEVE SER O ULTIMO DO SCRIPT" ... GRATO PELO AUXILIO ...

Editado por Rhaone da Silva
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...