我试图创建一个输入框,在用户写入文本时突出显示文本
patients = ["AB", "GH", "JS", "LP"]
attributes = ["medication", "weight", "mobility"]
commands = ["get" , "add", "replace", "delete"]
我希望每种类型的单词都有不同的格式
AB添加药物阿司匹林'->;'AB添加药物“阿司匹林”
JS获得药物治疗->JS获取药物
这可能吗?我并不是在寻找能够成功的代码;我只是想知道在我认真投入工作之前它是否可行
是的,这是可能的,但仅适用于基于QTextDocument的输入小部件,如QPlainTextEdit或QTextEdit,因为基本的单行小部件QLineEdit不支持格式化
您需要创建QSyntaxHighlighter的子类并重写其^{} 函数,然后遍历所有组,创建有效的正则表达式并提供相对格式:
然后在文档上设置高亮灯进行文本编辑:
注意,语法高亮显示中似乎有一个已知且未解析的bug,因此设置字体大小写将不起作用
不幸的是,没有简单的解决方法,因此您需要找到其他方法来突出显示属性
要了解字符格式的可用选项,请参阅QTextCharFormat和QTextFormat(它从中继承)的文档,这些文档还提供了
setBackground
和setForeground
等有用函数相关问题 更多 >
编程相关推荐