aboutsummaryrefslogtreecommitdiffstats
path: root/doc/codesnippets/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'doc/codesnippets/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp')
-rw-r--r--doc/codesnippets/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/doc/codesnippets/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp b/doc/codesnippets/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp
new file mode 100644
index 000000000..bb00cac38
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp
@@ -0,0 +1,74 @@
+//! [0]
+editor = QTextEdit()
+highlighter = MyHighlighter(editor.document())
+//! [0]
+
+
+//! [1]
+class MyHighlighter(QSyntaxHighlighter):
+ def highlightBlock(self, text):
+ myClassFormat = QTextCharFormat()
+ myClassFormat.setFontWeight(QFont.Bold)
+ myClassFormat.setForeground(Qt.darkMagenta)
+ pattern = QString("\\bMy[A-Za-z]+\\b")
+
+ expression = QRegExp(pattern)
+ index = text.indexOf(expression)
+ while index >= 0:
+ length = expression.matchedLength()
+ setFormat(index, length, myClassFormat)
+ index = text.indexOf(expression, index + length)
+//! [1]
+
+
+//! [2]
+multiLineCommentFormat = QTextCharFormat()
+multiLineCommentFormat.setForeground(Qt.red)
+
+startExpression = QRegExp("/\\*")
+endExpression = QRegExp("\\*/")
+
+setCurrentBlockState(0)
+
+startIndex = 0
+if previousBlockState() != 1:
+ startIndex = text.indexOf(startExpression)
+
+while startIndex >= 0:
+ endIndex = text.indexOf(endExpression, startIndex)
+ if endIndex == -1:
+ setCurrentBlockState(1)
+ commentLength = text.length() - startIndex
+ else:
+ commentLength = endIndex - startIndex
+ + endExpression.matchedLength()
+
+ setFormat(startIndex, commentLength, multiLineCommentFormat)
+ startIndex = text.indexOf(startExpression,
+ startIndex + commentLength)
+//! [2]
+
+
+//! [3]
+class MyHighlighter(QSyntaxHighlighter):
+ def highlightBlock(self, text):
+ myClassFormat = QTextCharFormat()
+ myClassFormat.setFontWeight(QFont.Bold)
+ myClassFormat.setForeground(Qt.darkMagenta)
+ pattern = QString("\\bMy[A-Za-z]+\\b")
+
+ expression = QRegExp(pattern)
+ index = text.indexOf(expression)
+ while index >= 0:
+ length = expression.matchedLength()
+ setFormat(index, length, myClassFormat)
+ index = text.indexOf(expression, index + length)
+//! [3]
+
+
+//! [4]
+class BlockData(QTextBlockUserData):
+ def __init__(self):
+ # ...
+ self.parentheses = []
+//! [4]