Topic: Caricare/salvare QTextDocuments con QTextEdit...  (Letto 2071 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Bakuriu

  • python sapiens sapiens
  • ******
  • Post: 2.267
  • Punti reputazione: 2
  • Katon, Goukakyuu no jutsu!
    • Mostra profilo
    • Jack's Blackboard - Il mio blog
Caricare/salvare QTextDocuments con QTextEdit...
« il: Luglio 07, 2009, 11:49 »
Leggendo la documentazine di PyQt4 ho trovato questo QTextEdit e ho provato a fare un semplice programmino con un QTextEdit e 3 pulsanti(Apri file, salva e salva con nome). Visto che non conosco bene il QTextDocument ho provato semplicemente a creare una funzione salva tipo questa:

[hlpycode]
def Salva(self):
      if os.path.exists(self.filename):
             f = open(self.filename,"r+")
             text = self.textEdit.selectAll().copy()
             f.write(text)
             f.close()
       else:
            self.SalvaConNome()
def SalvaConNome(self):
       fname = self.filename if self.filename is not None else "."
       fname = unicode(QFileDialog.getSaveFileName(self,"X-Save file", fname,"Text file (.txt)"))
       if fname:
             if "." not in fname:
                     fname += ".txt"#uso solo ".txt" per comodità...
             self.filename = fname
             self.Salva()
[/hlpycode]

Ho capito che fare :
text = self.textEdit.selectAll().copy()
non serve a niente... infatti mi da errore dicendomi che in f.write il primo argomento non può essere un NoneType
ma allora come faccio a prendere il testo del QTextEdit?
Ho visto che ha il metodo setDocument() ma non cpaisco a cosa serve... e sopratutto setDocument() usa QTextDocument e basta credo e io preferirei non usarlo...
qualcuno sa come fare?
grazie mille in anticipo

Offline Rev

  • python neanderthalensis
  • ****
  • Post: 386
  • Punti reputazione: 0
    • Mostra profilo
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #1 il: Luglio 07, 2009, 12:56 »
dovrebbe essere self.textEdit.text()

Offline Bakuriu

  • python sapiens sapiens
  • ******
  • Post: 2.267
  • Punti reputazione: 2
  • Katon, Goukakyuu no jutsu!
    • Mostra profilo
    • Jack's Blackboard - Il mio blog
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #2 il: Luglio 07, 2009, 16:10 »
Adesso provo a usarlo ma nella documentazione non c'è...
anche se devo dire che la documentazione e fatta parecchio male...so leggere l'inglese ma le spiegazioni sono molto sbrigative...

Offline masci

  • python sapiens
  • *
  • moderatore
  • Post: 684
  • Punti reputazione: 0
    • Mostra profilo
    • MasciBlog
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #3 il: Luglio 07, 2009, 16:36 »
anche se devo dire che la documentazione e fatta parecchio male...so leggere l'inglese ma le spiegazioni sono molto sbrigative...
Usa l'assistant o la documentazione online delle librerie C++ per avere più dettagli.

Che metodo usi per impostare il contenuto del QTextEdit?
Se hai usato setPlainText() il contenuto lo recuperi con toPlainText(), simmetricamente per il metodo setHtml.
Se invece hai usato setText è il widget stesso che tenta di capire se la QString che gli hai passato contiene plain o rich text, in questo caso sta a te decidere come recuperare il contenuto.

Offline Rev

  • python neanderthalensis
  • ****
  • Post: 386
  • Punti reputazione: 0
    • Mostra profilo
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #4 il: Luglio 07, 2009, 19:42 »
Citazione
QString QTextEdit::text () const

Returns all the text in the text edit as plain text.

See also setText().

http://doc.trolltech.com/4.4/qtextedit-qt3.html#text

mi sembra documentato bene

Offline masci

  • python sapiens
  • *
  • moderatore
  • Post: 684
  • Punti reputazione: 0
    • Mostra profilo
    • MasciBlog
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #5 il: Luglio 07, 2009, 19:47 »
http://doc.trolltech.com/4.4/qtextedit-qt3.html#text

mi sembra documentato bene
Occhio che questo è il widget compatibile Qt3, non so se è quello che ha usato l'OP (io davo per scontato che stesse usando le classi Qt4)

Quello di cui parlavo io è questo:
http://doc.trolltech.com/4.4/qtextedit.html

Offline Rev

  • python neanderthalensis
  • ****
  • Post: 386
  • Punti reputazione: 0
    • Mostra profilo
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #6 il: Luglio 07, 2009, 19:54 »
si infatti in quella pagina dice di guardare anche text() ma alla fine è come usare toPlainText()

Offline Bakuriu

  • python sapiens sapiens
  • ******
  • Post: 2.267
  • Punti reputazione: 2
  • Katon, Goukakyuu no jutsu!
    • Mostra profilo
    • Jack's Blackboard - Il mio blog
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #7 il: Luglio 07, 2009, 23:13 »
SE provo a fare questo:
a = self.textEdit.text()
mi dice che QTextEdit non ha il metodo text()...
ma quindi per "prelevare" o mettere il testo basta che io faccia toPlainText e setPlainText?(al momento non voglio html...)
tipo:per salvare il testo(1) per caricarlo(2)?

1:
a = self.textEdit.toPlainText()
f = open("ciao.txt","w+t")
f.write(a)
f.close()
2:
f = open("ciao.txt","r+")
a = f.read()
self.textEdit.setPlainText(a)

Offline Rev

  • python neanderthalensis
  • ****
  • Post: 386
  • Punti reputazione: 0
    • Mostra profilo
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #8 il: Luglio 07, 2009, 23:50 »
text() è rimasto solo per QLineEdit evidentemente nelle Qt4, comunque c'è scritto tutto nella pagina della documentazione inoltre ti consiglio http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/classes.html perchè è leggermente meglio per chi non conosce c++
« Ultima modifica: Luglio 07, 2009, 23:52 da Rev »

Offline Bakuriu

  • python sapiens sapiens
  • ******
  • Post: 2.267
  • Punti reputazione: 2
  • Katon, Goukakyuu no jutsu!
    • Mostra profilo
    • Jack's Blackboard - Il mio blog
Re: Caricare/salvare QTextDocuments con QTextEdit...
« Risposta #9 il: Luglio 08, 2009, 09:01 »
ok grazie adesso vedo.

ok adesso sono riuscito a capire come salvare i file usando open ecc
Ma allora mi sorge una domanda: a cosa cavolo serve setDocument???
qualcuno sa qualcosa?
« Ultima modifica: Luglio 10, 2009, 10:25 da Bakuriu »