2010-03-30 33 views
1

我正在擴展QPlainTextEdit。從單詞選擇中排除字符的方法

當我雙擊一個包含管道字符的詞:{「foo」| upper | reverse} 整個文本被包圍。

我想排除管道字符「|」從選擇,不知道該怎麼辦 有沒有辦法改變QTextCursor :: WordUnderCursor的行爲?

我想這個字符行爲相同的空間或更一般地作爲一個不可選的字符。

如在QT文件中指出:

光標下選擇的單詞。如果 光標未位於 可選字符串中,則不會選擇 文本。

回答

2

目前有改變文本編輯查找單詞邊界的方式沒有正式的辦法。請參閱http://bugreports.qt-project.org/browse/QTBUG-150

您可以使用其私有API來更改QTextEngine :: atWordSeparator的行爲。這種方式不是由Qt推薦的。該管道在4.6中被識別爲字分隔符,但不在4.5.1或更早的版本中。我會建議更新你的Qt版本,如果這是一個選項。否則,你可以給你的QTextEdit一個新的QTextLayout和一個修改後的QTextEngine。

+0

感謝您的回答。 – 2010-03-31 05:51:42

+0

升級到QT 4.6的確有竅門。 – 2010-03-31 06:54:45