2017-06-13 4 views
1

フォントや色などの単一の単語の属性を変更しようとしています。 QTextEditでは、QStringをhtmlに設定した後、setHtml(htmlText)でhtmlとしてテキストを設定できます。入力は面倒です。スペースを入力したり、Enterキーを押したりすることはできません。時には言葉が逆に書き込まれることもあります。QTextEditでhtmlを使用すると入力が面倒です

void MainWindow::on_textEdit_textChanged() 
{ 
    QString plainText = ui->textEdit->toPlainText(); 
    QString htmlText = "<font color='red'>" + plainText + "</font>"; 

    disconnect(ui->textEdit, SIGNAL(textChanged()), this, SLOT(on_textEdit_textChanged())); 

    ui->textEdit->setHtml(htmlText); 
    QTextCursor cursor(ui->textEdit->textCursor()); 
    cursor.movePosition(QTextCursor::EndOfWord); 
    ui->textEdit->setTextCursor(cursor); 

    connect(ui->textEdit, SIGNAL(textChanged()), this, SLOT(on_textEdit_textChanged())); 
} 

色は正しく設定されていますが、入力には一貫性がありません。私はhtmlの専門家ではない。助言がありますか。

答えて

2

HTMLは、ドキュメントの構文ツリーの転送表現です。 またはを別のものに変更する必要があります。そうしないと、2つの間のやりとりによるフォールアウトに直面します。 1つを選択してそれに固執する。

QTextDocumentインターフェイスを使用しているので、そのインターフェイスを使用してすべての変更を行う必要があります。 HTMLを直接処理する必要はありません。テキストの塊の属性を変更するには、テキストを選択してから、カーソルAPIで操作します。

関連する問題