我正在做一個自定義代碼編輯器QPlainTextEdit
和QSyntaxHighlighter
,我遇到了一個小故障。我想要在選擇中保留語法高亮。但是,選擇(環境顏色)的顏色會覆蓋由QSyntaxHighlighter
和html標記突出顯示的文本的顏色。保留了其他屬性,如字體系列。QSyntaxHighlighter - 文本選擇覆蓋樣式
實施例:
無選擇: 選擇:
(我想Hello
是綠色和World!
是黑色)
我也試圖設置樣式表:
QPlainTextEdit {
selection-color: rgba(0, 0, 0, 0);
selection-background-color: lightblue;
}
結果:
背景顏色覆蓋文字和文字顏色alpha = 0
不可見。我這樣做只是爲了排除selection-color
之下的語法顏色依然存在的想法。它實際上覆蓋了selection-background-color
。
編輯:不,如果我也設置selection-background-color
到rgba(0, 0, 0, 0)
,沒有選擇,並且該選擇中沒有文本。我看到的只是背景。下面的代碼段,這使得整個鼠標的線條強調了
方法似乎是要走的路,但我會基本結束了重新實現所有的選擇機制......
QList<QTextEdit::ExtraSelection> extraSelections;
QTextCursor cursor = textCursor();
QTextEdit::ExtraSelection selection;
selection.format.setBackground(lineHighlightColor_);
selection.format.setProperty(QTextFormat::FullWidthSelection, true);
selection.cursor = cursor;
selection.cursor.clearSelection();
extraSelections.append(selection);
setExtraSelections(extraSelections);
有沒有更簡單解決這個問題?
你有沒有找到一個簡單的解決方案? – 2016-05-08 14:25:44
@NicolasHolthaus我已經辭職了。如果我找到了一個更簡單的方法(我不知道QTextEdit :: ExtraSelection是否是一個可行的解決方案),我會分享它。 – LogicStuff 2016-05-08 16:03:03
這是一個令人討厭的語法熒光筆限制。 – 2016-05-08 16:20:12