2013-07-04 20 views
29

Qual è la differenza tra QTextEdit e QPlainTextEdit, perché utilizzare uno sull'altro?QTextEdit vs QPlainTextEdit

Sto codificando un editor di testo come un attrezzo per imparare Qt5, e ora mi chiedo se usare QTextEdit o QPlainTextEdit. Finora ho solo scoperto che è possibile visualizzare le immagini in QTextEdit, ma a parte questo sembrano un po 'identiche a me. Il mio editor di testo dovrebbe supportare alcune evidenziazioni sintattiche di base (probabilmente usando il segnale textChanged()), ma questo è praticamente il più possibile.

Google cerca "QTextEdit vs QPlainTextEdit" e "QTextEdit rispetto al QPlainTextEdit" non mi ha dato alcun risultato decenti che confrontare le due classi.

risposta

27

Da Qt's documentation:

QPlainTextEdit è un visualizzatore/editor avanzato di supporto di testo normale. È ottimizzato per gestire documenti di grandi dimensioni e per rispondere rapidamente all'input dell'utente .

QPlainText utilizza molto la stessa tecnologia e concetti QTextEdit, ma è ottimizzato per la gestione del testo.

QPlainTextEdit funziona su paragrafi e caratteri. Un paragrafo è una stringa formattata che è avvolta da parole per adattarsi alla larghezza del widget . Per impostazione predefinita durante la lettura di testo normale, una nuova riga indica un paragrafo . Un documento è costituito da zero o più paragrafi. I paragrafi sono separati da interruzioni di linea. Ogni carattere all'interno di un paragrafo ha i propri attributi, ad esempio carattere e colore.

E più tardi:

Differenze a QTextEdit

QPlainTextEdit è una classe sottile, realizzato utilizzando la maggior parte della tecnologia che sta dietro QTextEdit e QTextDocument. Le sue prestazioni derivano dallo QTextEdit derivano principalmente dall'utilizzo di un diverso layout di testo semplificato denominato QPlainTextDocumentLayout nel documento (vedere QTextDocument::setDocumentLayout()). Il layout di testo in chiaro del testo non supporta tabelle né frame incorporati e sostituisce un calcolo altezza altezza pixel con un approccio di scorrimento riga per punto rispettivamente paragrafo per riga. Ciò rende possibile il di gestire documenti di dimensioni notevolmente maggiori, e ridimensioni ancora l' l'editor con line wrap abilitato in tempo reale. Rappresenta anche un visualizzatore di registro rapido (vedere setMaximumBlockCount()).

Quindi la differenza è che QPlainTextEdit è ottimizzato per la gestione di testo normale e può essere utilizzato anche con file di testo normale molto grandi. Anche il modo in cui il testo è formattato è più semplice.

Se si prevede di supportare solo testi semplici, quindi QPlainTextEdit è la scelta giusta.

+3

Posso ancora utilizzare l'evidenziazione della sintassi per 'QPlainTextEdit'? –

+4

@MarkusMeskanen [Sì] (http://qt-project.org/doc/qt-5.0/qtwidgets/qplaintextedit.html#syntax-highlighting). – Bakuriu

+0

Grazie @Bakuriu, davvero non lo sapevo! Dovrò ri-implementarlo in [QOwnNotes] (http://www.qownnotes.org). –

Problemi correlati