簡體   English   中英

我可以從 QTextEdit 中檢索文本光標處字符的文本顏色(或背景顏色)嗎?

[英]Can I retrieve the text color (or background color) of the character at the text cursor from QTextEdit?

我有一個 QTextEdit 窗口,其中包含以多種顏色顯示的單詞和字母。 我希望在處理窗口內容時能夠檢索文本每個部分的顏色。 到目前為止,我的嘗試是將整個內容保存為一個 html 文件,然后通過它進行解析以僅提取帶有顏色信息的文本。 這是非常麻煩和困難的。 如果我可以在光標位置檢索文本的顏色,我更喜歡使用 QTextCursor 處理文本。 我已經搜索了適當的功能,但沒有找到。

是否有函數可以在 QTextCursor 位置檢索顏色(或格式)?

或者,有沒有辦法檢索與格式信息具有相同顏色(或格式)的單詞和/或字符的每個連續部分?

好吧,我找到了一種方法來做我想做的事。 這是相關的代碼:

QTextCursor tc = qte->textCursor();
tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
while(tc.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor))
{
    QTextCharFormat tcf = tc.charFormat();
    int bg = tcf.background().color().rgb();
    int fg = tcf.foreground().color().rgb();
    printf("bg=%x fg=%x\n", bg, fg);
}

歡迎提出任何意見或改進。

[更正以上]:我原來有

QColor bg = tcf.background().color().rgb();
QColor fg = tcf.foreground().color().rgb();

但是在最后使用.rgb()時,它將QColor轉換為int

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM