290 热度

Qt中实现文本框中的代码高亮显示

转载请注明原创

首先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,安装过程:

 

接下来,安装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

安装过程如下:

 

你会在/usr/local/share这个文档下找到source-highlight这个文件。

然后,就是最后的一步,安装source-highlight-qt,下载链接为下:http://sourceforge.net/projects/srchiliteqt/files/latest/download?source=files
安装步骤:

卸载过程也很方便:

 

你会在/usr/local/include下面找到其库文件srchilite和srchiliteqt。

接下来就是在qt中使用,首先,要在外部库中,导入boost库和source-highlight-qt。但是,执行的时候可能还会有问题,会显示在/usr/share/下没有source-highlight-qt库,这个问题,我解决地比较暴力,直接把那个库拷贝到/usr/share/下就可以了。
然后,就可以使用了,
以下就是使用方法:

如有问题,请留言。

Leave a Reply

Your email address will not be published. Required fields are marked *