1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida Python

Discussão em 'Programação' iniciada por iceraider, 28 de Janeiro de 2008. (Respostas: 4; Visualizações: 680)

  1. boas ppl, tou com um pequeno problema com um programa em python que ou a desenvolver.


    estou a utilizar um widget de texto, o que acontece é que quero colocar o conteúdo de um ficheiro nesse widget. se fosse de forma inicial, ou seja carregar o programa já com a variável do ficheiro iniciada td bem, ele coloca lá o conteúdo. o problema é que quando carrego um ficheiro novo ele não o carrega. alguém tem alguma ideia?

    aki fica um exemplo do que já fiz:


    Código:
    from Tkinter import *
    from tkFileDialog   import askopenfilename
    
    def fileOpen():
        filename = askopenfilename()
        teste(filename)
    
    root = Tk()
    
    
    myText = ''
    
    
    menubar = Menu(root)
    
    # create a pulldown menu, and add it to the menu bar
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="Open", command=fileOpen)
    menubar.add_cascade(label="File", menu=filemenu)
    
    # display the menu
    root.config(menu=menubar)
    root.title("Calculador de Calorias")
    frame1 = Frame(root, width=512, height=5, bg="lightgray")
    frame1.pack()
    
    myTextWidget= Text(root) # set up a text widget as a root (window) child
    
    scrollbar = Scrollbar(root)
    scrollbar.pack(side=RIGHT, fill=Y)
    
    myTextWidget.config(yscrollcommand=scrollbar.set)
    scrollbar.config(command=myTextWidget.yview)
    
    myTextWidget.insert(0.0,myText) # insert the file's text into the text widget
    myTextWidget.pack(expand=1, fill=BOTH) # show the widget
    myTextWidget.config(state=DISABLED)
    
    def teste(filename):   
        myFile = file (filename)#("resCalorias.txt") # get a file handle
        myText = myFile.read() # read the file to variable
        myFile.close() # close file handle
        myTextWidget.insert(0.0,myText)
        
    mainloop()
     
  2. Quantum_Kira

    Quantum_Kira Power Member

    Estive aqui a experimentar um bocado com o teu programa e reparei que consegues carregar ficheiros de texto se apagares a seguinte linha:

    Código:
    myTextWidget.config(state=DISABLED)
    Se fizeres isto parece funcionar bem. O único problema é que se abres um ficheiro com outro já aberto o texto dos dois fica visível.

    EDIT: Depois de escrever este post não quis desistir e continuei a brincar com o teu programa. Cheguei à conclusão que se inserires a seguinte linha de código na função teste (antes do insert) quando abrires outro ficheiro o texto do anterior desaparece e ficas com só com o novo.

    Código:
    myTextWidget.delete(0.0,END)
    Espero que ajude! :)
     
    Última edição: 28 de Janeiro de 2008

  3. comigo não funcionou. mesmo depois d apagar essa linha continuo sem abrir ficheiros .txt :confused:

    d qq forma thx pelo reply.
     
  4. já funciona. perdi tanto tempo com isto e era só estas linha.


    obrigado, foste 5*
     
  5. já agora podemos manter o:
    Código:
    myTextWidget.config(state=DISABLED)
    e depois na função teste(filename)

    Código:
      myTextWidget.config(state=NORMAL)
      myTextWidget.delete(0.0,END)
      myTextWidget.insert(0.0,myText)
      myTextWidget.config(state=DISABLED)
    em que a janela fica sem a possibilidade de edição.

    thx mais uma x.
     

Partilhar esta Página