我正在開發一個簡單的編輯器,並在我的編輯器中嘗試實施某事。像這樣:例如,用戶鍵入「void」,然後我發出一個信號,在gui中的某個地方會捕獲它,它會自行改變。我現在用的是syntax highlighter例如在我的代碼,我發出的highlightBlock功能的信號:如何在字符串匹配時在qtextedit中發出信號?
void Highlighter::highlightBlock(const QString &text)
{
foreach (const HighlightingRule &rule, highlightingRules) {
QRegExp expression(rule.pattern);
if (expression.exactMatch("void")==true) {
emit voidPrinted(2);
}
int index = expression.indexIn(text);
while (index >= 0) {
int length = expression.matchedLength();
...
}
但是當我運行程序時,信號始終沒有輸入無效發出。文檔說明:「只要富文本引擎有必要,即當文本塊發生更改時,就會自動調用highlightBlock()函數。」而且我認爲我只是在表達無效時發出,但顯然我錯了。任何幫助?