2013-05-15 7 views
8

Sono fiamente nuovo in Pyqt - Attualmente lo sto usando per fare una rappresentazione visiva di un grafico. Ho creato un widget personalizzato per questo, che era abbastanza facile. Ma ora sono bloccato quando devo usare funzionalità incorporate.pyqt - come creare una textarea per scrivere messaggi - un po 'come stampare su una console

voglio aggiungere una 'visione' per la mia applicazione e in grado di stampare il testo ad esso (un po 'come quello che succede quando si stampa alla console con stampa ("blablabla"))

ho cercato di usare l'API PyQt per scoprire cosa/come ma ..

http://pyqt.sourceforge.net/Docs/PyQt4/qtgui.html

Esso contiene 41 classi in forma di testo + qualcos'altro e ad essere onesti non ho idea di quale usare per?

così se qualcuno mi potrebbe indicare che uno, e se avete tempo su come utilizzarlo per lo scopo che voglio, che sarebbe molto apprezzato ^^

risposta

21

Il modo più semplice sarebbe quella di utilizzare un QTextEdit, probabilmente impostarlo in lettura solo tramite setReadOnly() e aggiungere il testo con il metodo append() o insertPlainText(). Ho più o meno usato qualcosa di simile a quanto segue per un simile caso d'uso:

base Snippet:

... 
logOutput = QTextEdit(parent) 
logOutput.setReadOnly(True) 
logOutput.setLineWrapMode(QTextEdit.NoWrap) 

font = logOutput.font() 
font.setFamily("Courier") 
font.setPointSize(10) 

theLayout.addWidget(logOutput) 
... 

Per aggiungere testo in un colore arbitrario alla fine dell'area di testo e per scorrere automaticamente l'area di testo in modo che il nuovo testo è sempre visibile, è possibile utilizzare qualcosa come

automatico Scroll Snippet:

... 
logOutput.moveCursor(QTextCursor.End) 
logOutput.setCurrentFont(font) 
logOutput.setTextColor(color) 

logOutput.insertPlainText(text) 

sb = logOutput.verticalScrollBar() 
sb.setValue(sb.maximum()) 
...