转载请注明原创。
首先Qt中有两种文本框,一种是QTextEdit,另一种是QPlainTextEdit。
QTextEdit是可以显示Html风格的文本。QPlainTextEdit则可以对文本做操作。
关于高亮,搜了网上的资源,大体上是总结出了三种方法。
第一种方法,既然QTextEdit可以使用Html+css。那我们可以将输入的文本做下处理,加入html的标签,然后,在写入css风格。(ps:这里面应该不好使用js吧?没试过,哪位大神试试。)这种方法并不推荐,效果并不好。
第二种方法,调用Qt自身的<QSyntaxHighlighter>库,QSyntaxHighlighter与QTextEdit相配合使用
第三种方法,是我推荐的一种方法。即安装source-highlight-qt库。安装这种库,首先需要安装boost库(因为安装source-highlight需要这个库),下载地址:http://sourceforge.net/projects/boost/files/latest/download?source=dlp,安装过程:
1 2 3 | ./bootstrap.sh sudo ./b2 sudo ./b2 install |
接下来,安装source-highlight。正常来说可以通过软件中心来进行安装。但是在之后安装source-highlight-qt时,老是因为找不到source-highlight的pc文件,而无法安装,因为source-highlight-qt是依赖于source-highlight的。没办法,只好手动安装source-highlight。
以下是source-highlight-3.1.7版本的下载,http://www.kuaipan.cn/file/id_197852848220799005.htm
安装过程如下:
1 2 3 | sh ./configure sudo make sudo make install |
你会在/usr/local/share这个文档下找到source-highlight这个文件。
然后,就是最后的一步,安装source-highlight-qt,下载链接为下:http://sourceforge.net/projects/srchiliteqt/files/latest/download?source=files
安装步骤:
1 2 3 | sh ./configure sudo make sudo make install |
卸载过程也很方便:
1 | sudo make uninstall |
你会在/usr/local/include下面找到其库文件srchilite和srchiliteqt。
接下来就是在qt中使用,首先,要在外部库中,导入boost库和source-highlight-qt。但是,执行的时候可能还会有问题,会显示在/usr/share/下没有source-highlight-qt库,这个问题,我解决地比较暴力,直接把那个库拷贝到/usr/share/下就可以了。
然后,就可以使用了,
以下就是使用方法:
1 2 | srchiliteqt::Qt4SyntaxHighlighter *highlighter = new srchiliteqt::Qt4SyntaxHighlighter(SrcEdit->document()); highlighter->init("cpp.lang"); |
如有问题,请留言。