Profilo di Bongo

Nome Bongo
Indirizzo email n/a
Messaggi6
  • Re: iterazione di un array che non parte da zero
    Forum >> Principianti
    non so rispondere alle tue domande su array ma a quanto ho capito potresti provare a dare un occhiata all'argomento keys delle liste o delle tuple, non ricordo. Mi spiace essere così generale ma anche io sono agli inizi con questo linguaggio.
    Ho provato a fare un programmaino per prendere i numeri dal file e togliere il \n al fondo. A me così sta funzionando:

    #!/usr/bin/env python
    
    inpFile=open("elencoNumeri","r")
    righe=[]
    for count in inpFile.readlines():
      lunghezza=len(count)-1
      righe.append(count[:lunghezza])
      #print "righe= %s" %righe
      print "%d righe" %len(righe)
    
    print "%d righe" %len(righe)
    print righe
    
    inpFile.close()
    

  • Re: Tkinter Text self.testo.insert()
    Forum >> Programmazione Python >> GUI
    Grazie, avevo proprio bisogno di qualcuno che mi dicesse di aver capito il problema che io non ho capito. Non so come ringraziarti


    --- Ultima modifica di Bongo in data 2015-04-09 08:45:56 ---

    --- Ultima modifica di Bongo in data 2015-04-09 08:46:10 ---
  • Re: Tkinter Text self.testo.insert()
    Forum >> Programmazione Python >> GUI
    --- Ultima modifica di Bongo in data 2015-04-09 08:44:39 ---
  • Re: Tkinter Text self.testo.insert()
    Forum >> Programmazione Python >> GUI
    Sono andato un po' avanti. Adesso il problema sembrerebbe risolto ma incontro un nuovo problema. Quando cerco di aprire un file che so di certo esserci mi compare l'errore:
    Exception in Tkinter callback
    Traceback (most recent call last):
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1437, in __call__
    return self.func(*args)
    File "./interfaccia2.py", line 31, in loadFile
    filein=open(str(fileName),"r")
    IOError: [Errno 2] No such file or directory: '<__main__.ApplicazioneGrammatica instance at 0x7fcd77e0ae60>'

    il codice ha pochi cambiamenti comunque adesso è questo
    #!/usr/bin/env python 
    #############################################################################################################
    # Autore      | Luca Ciardiello                                                                             #
    #-------------+---------------------------------------------------------------------------------------------#
    # Data        | 07/04/2015                                                                                  #
    #-------------+---------------------------------------------------------------------------------------------#
    # Versione    | 0.1                                                                                         #
    #-------------+---------------------------------------------------------------------------------------------#
    # Descrizione | l'applicazione grammatica imita il comando wc contando parole, righe e caratteri di un file #
    #             | e permettendo di contare i simboli di punteggiatura, i capoversi e le frasi (assumendo che  #
    #             | le frasi siano terminate sempre con un carattere [. , ? , !]                                #
    #############################################################################################################
    from Tkinter import *
    
    ##################################
    # Classe finestra di interazione #
    ##################################
    class ApplicazioneGrammatica():
    
      ################################
      # funzione per evento cancella #
      ################################
      def evCanc(self):
        self.testoRicerca.delete(0,END)
    
      #####################################################
      # funzione per caricamento testo in frameBody Testo #
      #####################################################
      def loadFile(fileName):
        i=1
        filein=open("menu.txt","r")
        for riga in filein.readlines():
          i+=1
          self.testo.insert(i,riga)
        filein.close()
    
      ###############
      # costruttore #
      ###############
      def __init__(self,padre=0):
        # Frame principale #
        self.finestraPrincipale=Frame(padre)
        # Frame header #
        self.finestraHeader=Frame(self.finestraPrincipale)
        # Entry per ricerca del file e pulsante ricerca #
        self.finestraRicerca=Frame(self.finestraHeader)
        self.etichettaRicerca=Label(self.finestraHeader,text="File Path: ")
        self.testoRicerca=Entry(self.finestraHeadera)
        # RadioButton per selezione del tipo di testo #
        self.bottoneRicerca=Button(self.finestraHeader,text="Carica",command=self.loadFile)
        self.BottoniRicerca=Frame(self.finestraHeader,border=1)
        self.radioTesto=Radiobutton(self.BottoniRicerca,text=".txt   ", value="1")
        self.radioHtml=Radiobutton(self.BottoniRicerca,text=".html", value="2")
        # Frame body #
        self.finestraBody=Frame(self.finestraPrincipale)
        self.testo=Text(self.finestraBody,height=20,width=60)
        # Frame footer #
        self.finestraFooter=Frame(self.finestraPrincipale)
        self.finestraBottoni=Frame(self.finestraFooter)
        self.bCancella=Button(self.finestraBottoni,text="Cancella",command=self.evCanc)
        self.bEsci=Button(self.finestraBottoni,text="Esci",command=self.finestraPrincipale.quit)
        # visualizzazione degli elementi #
        self.finestraPrincipale.pack()
        self.finestraHeader.pack()
        self.finestraRicerca.pack(side="left")
        self.etichettaRicerca.pack(side="left")
        self.testoRicerca.pack(side="left")
        self.bottoneRicerca.pack(side="left")
        self.BottoniRicerca.pack(side="left")
        self.radioTesto.pack(padx=20)
        self.radioHtml.pack(padx=20)
        self.finestraBody.pack()
        self.testo.pack()
        self.finestraFooter.pack()
        self.finestraBottoni.pack()
        self.bCancella.pack(side="left")
        self.bEsci.pack(side="left")
    
    ######################
    # avvio ciclo eventi #
    ######################
    app=ApplicazioneGrammatica()
    app.finestraPrincipale.mainloop()

  • Re: [Tkinter] come cancellare immissioni in una entry
    Forum >> Programmazione Python >> GUI
    magari hai già risoltoma hai provato a mettere un indentazione corretta nella funzione? la seconda riga deve rientrare se non sbaglio
  • Tkinter Text self.testo.insert()
    Forum >> Programmazione Python >> GUI
    Buongiorno a tutti,
    come ve la passate? Qua sto uscendo scemo per un errore che non riesco proprio a capire, s magari qualcuno di voi riuscisse a darmi una mano gli sarei molto grato.
    Partendo da principio, sto seguendo un tutorial: http://www.arcetri.astro.it/~lfini/AGauld/ e sono arrivato all'esempio finale.

    Prima di vedere per bene come fa lui, mi piacerebbe provare a fare un programma da solo per vedere effettivamente quello che sono riuscito ad assimilare.

    Il programma è un contatore di parole e "controllo" grammaticale (conta capoversi, frasi, punteggiatura ecc...) ed ècomposto da una finestra principale con all'interno tre sezioni principali:
    1- un header nel quale ci sono un Entry, un bottone ed una combobox
    2- il body che contiene un elemento Text che andrò poi a riempire
    3- un footer con i pulsanti per cancellare il contenuto della Entry e per chiudere la finestra.
    Lo scopo di questa pagina per ora, è semplicemente quello di aprire un file immettendo il nome nella Entry e riportarlo nel Text subito sotto. Successivamente ho pensato di proseguire mettendo di fianco al Text una selezione di qualche tipo per far scegliere all'utente cosa far contare al programma e mettere quindi poi un bottone che avvii il conto.
    Tutta questa seconda parte la vedrò poi man mano che riesco a mettere a posto tutti i problemi che si verificheranno.

    Il mio codice per ora è il seguente:
    #!/usr/bin/env python
    ############################
    # Autore : Luca Ciardiello #
    # Data   : 07/04/2015      #
    ############################
    from Tkinter import *
    
    ##################################
    # Classe finestra di interazione #
    ##################################
    class ApplicazioneGrammatica():
    
      ################################
      # funzione per evento cancella #
      ################################
      def evCanc(self):
        self.testoRicerca.delete(0,END)
    
      #####################################################
      # funzione per caricamento testo in frameBody Testo #
      #####################################################
      def loadFile(fileName):
        i=1
        filein=open("menu.txt","r")
        for riga in filein.readlines():
          i+=1
          self.testo.insert(i,riga)
        filein.close()
    
      ###############
      # costruttore #
      ###############
      def __init__(self,padre=0):
        # Frame principale #
        self.finestraPrincipale=Frame(padre)
        # Frame header #
        self.finestraHeader=Frame(self.finestraPrincipale)
        # Entry per ricerca del file #
        self.finestraRicerca=Frame(self.finestraHeader)
        self.etichettaRicerca=Label(self.finestraHeader,text="File Path: ")
        self.testoRicerca=Entry(self.finestraHeader)
        #self.bottoneRicerca=Button(self.finestraHeader,text="Carica",command=self.loadFile(self.testoRicerca.get()))
        self.bottoneRicerca=Button(self.finestraHeader,text="Carica",command=self.loadFile)
        # RadioButton per selezione ricerca #
        self.BottoniRicerca=Frame(self.finestraHeader,border=1)
        self.radioTesto=Radiobutton(self.BottoniRicerca,text=".txt   ", value="1")
        self.radioHtml=Radiobutton(self.BottoniRicerca,text=".html", value="2")
        # Frame body #
        self.finestraBody=Frame(self.finestraPrincipale)
        self.testo=Text(self.finestraBody,height=20,width=60)
        # Frame footer #
        self.finestraFooter=Frame(self.finestraPrincipale)
        self.finestraBottoni=Frame(self.finestraFooter)
        self.bCancella=Button(self.finestraBottoni,text="Cancella",command=self.evCanc)
        self.bEsci=Button(self.finestraBottoni,text="Esci",command=self.finestraPrincipale.quit)
        # visualizzazione degli elementi #
        self.finestraPrincipale.pack()
        self.finestraHeader.pack()
        self.finestraRicerca.pack(side="left")
        self.etichettaRicerca.pack(side="left")
        self.testoRicerca.pack(side="left")
        self.bottoneRicerca.pack(side="left")
        self.BottoniRicerca.pack(side="left")
        self.radioTesto.pack(padx=20)
        self.radioHtml.pack(padx=20)
        self.finestraBody.pack()
        self.testo.pack()
        self.finestraFooter.pack()
        self.finestraBottoni.pack()
        self.bCancella.pack(side="left")
        self.bEsci.pack(side="left")
    
    ######################
    # avvio ciclo eventi #
    ######################
    app=ApplicazioneGrammatica()
    app.finestraPrincipale.mainloop()
    
    
    All'avvio del programma va tutto bene. Si apre la finestra e quasi tutti i pulsanti si comportano in maniera corretta. Il problema sta el pulsante carica. Quando lo clicco, sul terminale compare l'errore
    o# ./interfaccia.py
    Exception in Tkinter callback
    Traceback (most recent call last):
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1437, in __call__
    return self.func(*args)
    File "./interfaccia.py", line 27, in loadFile
    self.testo.insert(i,riga)
    NameError: global name 'self' is not defined

    il mio dubbio è: self non va messo per comunicare all'oggetto che deve utilizzare uno suo stesso componente? Visto che sono agli inizi ho provato ad andare per esclusione ed omettere self, quindi la string è testo.insert(i,riga) ma giustamente l'interprete mi dice che non esiste nessuna variabile globale testo.
    Cosa sto dimenticando.
    In attesa di una risposta mi riguarderò un poco cosa dice il tutorial sulle variabili anche se mi sembrava di aver capito giustamente che le variabili globali sono dichiarate fuori dalle funzioni e dalle classi e nel caso ci sia l'utlizzo di una variabile globale lo dovrei specificare in modo che non ci sia la creazione in locale (nella funzione/classe) di una variabile chiamata come quella globale che però va a nasconderla.
    Grazie di eventuali aiuti
    Bongo