QTextEdit
lassen Sie analysieren fügen Sie Ihre Inhalte über eine QString
:
QTextEdit myEdit("the fish are coming");
Es erlaubt Ihnen auch eine QTextDocument
zu verwenden, die Textblöcke hält. Die QTextDocument
selbst kann auch ein akzeptieren QString
:
QTextEdit myEdit;
QTextDocument* myDocument = new QTextDocument("the fish are coming", &myEdit);
myEdit.setDocument(myDocument);
jedoch: „Wenn Sie einen neuen Textblock erstellen oder den Inhalt eines Dokuments ändern, während dessen Inhalt untersucht, mit der Cursor-basierten Schnittstelle zur Verfügung gestellt von statt. " (Qt documentation) (Beachten Sie, habe ich die QTextBlockFormat
Linien es explizit zu machen, wo die Blöcke.)
QTextEdit myEdit;
QTextDocument* myDocument = new QTextDocument(&myEdit);
myEdit.setDocument(myDocument);
QTextCursor* myCursor = new QTextCursor(myDocument);
QTextBlockFormat format;
format.setBackground(Qt::red);
myCursor->setBlockFormat(format);
myCursor->insertText("the ");
format.setBackground(Qt::green);
myCursor->insertBlock(format);
myCursor->insertText("fish ");
format.setBackground(Qt::yellow);
myCursor->insertBlock(format);
myCursor->insertText("are ");
format.setBackground(Qt::red);
myCursor->insertBlock(format);
myCursor->insertText("coming!");
format.setBackground(Qt::green);
myCursor->insertBlock(format);
myCursor->insertText(QString(%1 blocks").arg(myDocument->blockCount()));
myEdit.show();
wie viel Mühe Scheint mir zu gehen. Können Sie weitere Informationen darüber geben, warum Sie das Gefühl haben, dass Sie QTextBlock
s verwenden müssen?
Ich schreibe ein Programm, um Menschen zu helfen, eine andere Sprache zu lesen (Griechisch) und jedes Wort hat andere grammatikalische Informationen (wie "Verb, Indikativ, Aktiv, 3rd Person, Singular"), die ich gerne anzeigen würde Die Maus wird über jedes Wort bewegt. – jcuenod
Ah, das macht mehr Sinn. Ein Problem mit meinem Beispiel ist, dass jeder Block als eigene Zeile angezeigt wird. Ich habe nicht genug Erfahrung mit QTextBlocks, um zu wissen, wie man sie in die gleiche Zeile bringt. Viel Glück! – Bill