2015-05-23 15 views
10

Tài liệu của Qt5 không đề cập rằng QPlainTextEditsetText(QString) như QTextEdit. Nhưng, tôi không nghĩ điều đó là không thể. Cách duy nhất tôi tìm thấy là sử dụng QTextDocument có thể có setPlainText(const QString& text). Vì vậy, tôi phải làm điều này:Làm thế nào để setText cho QPlainTextEdit?

plain_text_edit->setDocument(text_document); 

Vấn đề là text_document phải là một con trỏ. Không giống như QTextEdit 's setText có thể lấy biến cục bộ làm tham số của nó. Vì vậy, có anyway để làm setText thích QPlainTextEdit?

Trả lời

16

Nó rất đơn giản, chỉ cần get the current documentset its text:

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

cách Alternative, đầu tiên clear the editor, sau đó append new text:

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

Bạn cũng có thể sử dụng text cursor of the editor bằng nhiều cách để đạt được điều này, đơn giản nhất y bởi selecting toàn bộ văn bản hiện có (giả sử trình chỉnh sửa không trống), sau đó thực hiện plain_text_edit->TextCursor().insertText(text); (thay thế văn bản hiện được chọn bằng ngữ nghĩa dán thông thường), nhưng trong trường hợp đơn giản này có thể quá phức tạp.

Các vấn đề liên quan