1
您好我正在尝试做一个函数来扫描QTextEdit,搜索电子邮件地址和电话号码,并将其更改为粗体。当我运行它,它崩溃我的程序错误“QTextCursor :: setPosition两种:位置‘-1’超出范围”,这里是代码:更改QTextEdit中的文本
void MakeDisplay::processDoc(){
QString doc = text->toPlainText();
QTextCursor cursor = text->textCursor();
QTextCharFormat format;
format.setFontWeight(75);
QRegExp emails("*[email protected]*");
QRegExp phoneNums
("(\\d{3}-\\d{3}-\\d{4})(\\d{3}-\\d{7})(\\d{10})(\\(\\d{3}\\)\\d{3}-\\d{4})(\\(\\d{3}\\)\\d{7})");
int i, j;
i = 0;
j = 0;
while (!cursor.atEnd() || (i != doc.size())){
i = doc.indexOf(emails);
j = doc.indexOf(phoneNums);
cursor.setPosition(i,QTextCursor::MoveAnchor);
cursor.setPosition(i, QTextCursor::KeepAnchor);
cursor.mergeCharFormat(format);
cursor.setPosition(j,QTextCursor::MoveAnchor);
cursor.setPosition(j, QTextCursor::KeepAnchor);
cursor.mergeCharFormat(format);
i++;
j++;
}
}
检查doc.indexOf()函数的返回值。 – elephant