2015-05-23 34 views
10

Qt5'in belgelerinde, QTextEdit gibi QTextEdit gibi setText(QString) bulunur. Ama imkansız olduğunu sanmıyorum. Bulduğum tek yol, setPlainText(const QString& text) olan QTextDocument kullanmaktır. Bu yüzden bunu yapmak zorunda:QPlainTextEdit için nasıl ayarlanır?

plain_text_edit->setDocument(text_document); 

sorun text_document gösterici olmalıdır olduğunu. Parametre olarak yerel bir değişken alabilen QTextEdit 'un setText gibi değil. Yani,gibi setText yapmak için var mı?

cevap

16

Bu sadece get the current document ve set its text Çok basit:

plain_text_edit->document()->setPlainText(text); 

Alternatif bir yol, ilk clear the editor ardından append new text:

plain_text_edit->clear(); // unless you know the editor is empty 
plain_text_edit->appendPlainText(text); 

Ayrıca birçok yönden text cursor of the editor kullanabilirsiniz bunu başarmak için, en basit Mevcut tüm metni (editörün boş olmadığını varsayarak) selecting ile y, daha sonra plain_text_edit->TextCursor().insertText(text); (o anda seçili metnin yerini her zamanki yapıştırma semantiği ile değiştirir) yapar, ancak bu basit durum için belki de aşırı derecede karmaşık olabilir.

İlgili konular