3 Stimmen

Wie kann man das aktuelle Zeilenformat in QTextEdit ohne Auswahl ändern?

Da! Ich möchte herausfinden, wie ich das aktuelle Zeilenformat in QTextEdit ändern kann?

In dem Dokument lese ich, dass

"Die Formatierung kann auf das aktuelle aktuellen Textdokument angewendet werden, indem die setCharFormat(), mergeCharFormat(), setBlockFormat() und mergeBlockFormat() Funktionen angewendet werden. Wenn der Cursor keine Auswahl hat, wird das aktuelle Block Format geändert werden."

Aber in meiner Anwendung konnte der aktuelle Block, in dem sich der Cursor befindet, nicht geändert werden. Kann ich etwas übersehen? Wie könnte ich dann das Format des aktuellen Blocks ändern, der keine Auswahl hat?

Hier ist mein Code:

QTextCursor cursor = this->textCursor();
QTextBlockFormat blockFmt;
blockFmt.setNonBreakableLines(true);
blockFmt.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysBefore);
QTextCharFormat charFmt;
charFmt.setFont(data->visualFont());
if(!cursor.hasSelection()) {
    cursor.beginEditBlock();
    cursor.setBlockFormat(blockFmt);
    cursor.mergeBlockCharFormat(charFmt);
    QTextBlock block = cursor.block();
    block.setUserData(data);
    cursor.endEditBlock();
}

Was ich tun möchte, ist: Ändern Sie das Format der aktuellen Zeile, wenn keine Auswahl vorhanden ist. Wenn also cursor.hasSelection() falsch ist, füge ich einfach das neue Format in die Blockzeichen ein. Aber das funktioniert nicht.

Ich habe auch versucht, setTextCorsor(cursor); nach cursor.endEditBlock(); hinzuzufügen, aber es funktioniert immer noch nicht. In der Tat, nach dem Hinzufügen dieser, wird der gesamte Block unsichtbar.

Wie kann ich also das aktuelle Blockformat ändern, das keine Auswahl hat?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X