TL; DR:TextEdit
只有當我點擊它時,纔會突出顯示文字。沒有什麼幫助無法突出顯示TextEdit的工作
我有一個ListView
與QAbstractListModel
模型與字符串屬性。 這些字符串屬性正在拼寫檢查,QSyntaxHighlighter
用於顯示拼寫錯誤。我在TextEdit
的Component.onCompleted
中創建QSyntaxHighlighter
後裔。我仔細檢查突出顯示get的執行是否有正確的拼寫錯誤,並且熒光筆的setFormat()
以正確的位置執行。問題在於,只有當我點擊TextEdit
本身時,纔會以紅色繪製文本(無效)。
TextEdit
住在Flickable
(跟蹤光標)和Flickable
住在Rectangle
(有很好的背景和邊框)。綁定到某些信號並調用TextEdit
的update()不會有幫助。
拼寫檢查完成後,我發出創建的SyntaxHighlighter的rehighlight()
信號。
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)
}
}
}
這裏是如何它不直到你工作示範工程的小樣本點擊文本https://bitbucket.org/ribtoks/rehighlighdemo/src
任何想法我怎麼能解決這個問題?
我建立並執行你的來源,但該程序可以作爲你的預期。單擊拼寫檢查按鈕後,單詞突出顯示。我在OSX上使用Qt 5.5.1 – DenimPowell
一切正常,你可以嘗試使用make disclean來重建項目&& qmake && make' – swex
它肯定不適用於Qt 5.4。無論是否進行清潔和調整。它可能在5.5.1上工作。但是我需要保持我的產品兼容性達到Qt 5.2,這需要一些破解以及5.4 – Ribtoks