TL; DR:TextEdit
は、強調表示されたテキストをクリックするとペイントされます。何も役に立たないTextEditで強調表示ができない
ListView
には、文字列プロパティのQAbstractListModel
モデルがあります。 これらの文字列プロパティはスペルチェックされており、QSyntaxHighlighter
はスペルエラーを表示するために使用されます。 QSyntaxHighlighter
子孫をComponent.onCompleted
に作成します。TextEdit
です。正しい綴りエラーでハイライトされたgetが実行されたことを再度確認し、蛍光灯のsetFormat()
が正しい位置で実行されました。問題は、TextEdit
をクリックした場合にのみ、テキストを赤く(無効に)描画することです。 Flickable
(追跡するカーソル)で
TextEdit
生活やでFlickable
生活Rectangle
(素敵な背景と境界を持っています)。いくつかの信号にバインドして、TextEdit
というupdate()を呼び出すことは役に立ちません。
スペルチェックが完了した後、私はrehighlight()
のSyntaxHighlighterの信号を出します。テキストに私はこの問題を解決する方法をhttps://bitbucket.org/ribtoks/rehighlighdemo/src
任意のアイデアをクリックするまで、ここで
Rectangle {
id: descriptionRect
height: 30
border.width: descriptionTextInput.activeFocus ? 1 : 0
clip: true
Flickable {
id: descriptionFlick
contentWidth: descriptionTextInput.paintedWidth
contentHeight: descriptionTextInput.paintedHeight
anchors.fill: parent
interactive: false
flickableDirection: Flickable.HorizontalFlick
height: 30
clip: true
focus: false
function ensureVisible(r) {
if (contentX >= r.x)
contentX = r.x;
else if (contentX+width <= r.x+r.width)
contentX = r.x+r.width-width;
}
TextEdit {
id: descriptionTextInput
width: descriptionFlick.width
height: descriptionFlick.height
text: description
onTextChanged: model.editdescription = text
Component.onCompleted: {
globalModel.initDescriptionHighlighting(index, descriptionTextInput.textDocument)
}
onCursorRectangleChanged: descriptionFlick.ensureVisible(cursorRectangle)
}
}
}
は、それが動作しないかのデモンストレーションでプロジェクトの小さなサンプルですか?
は私が構築し、あなたのソースを実行するが、プログラムは、あなたが期待通りに動作します。スペルチェックボタンをクリックすると、単語が強調表示されます。私はOSXでQt 5.5.1を使用しました – DenimPowell
すべてが期待どおりに動作しますが、make disclean && qmake &&で ' – swex
'を使ってプロジェクトを再構築してみてください。清掃および清掃の有無にかかわらず。 5.5.1で動作している可能性があります。しかし私はQt 5.2まで私の製品に互換性を持たせる必要があります。これはハックを必要とするだけでなく、5.4 – Ribtoks