QScintilla下載與編譯

大家好,我又回來了~~

之前和大家分享的是在c/c++中通過python c api嵌入python解釋器,主體都是和python相關的。其實最終要和大家分享的是如何做一個python編輯器。比如支持語法高亮、關鍵字自動補全,顯示行號等功能。所以這次和大家一起學習的是一個Qt下的源代碼編輯器控件。相信有的同志已經猜出來了。對,就是它。

Scintilla是以C++編寫的自由開源程序庫,它提供文本編輯器程序的各種功能,特別是適用於源代碼編輯器的高級功能。

 

而QScintilla則是Scintilla 在Qt上的移植。QScintilla是Scintilla編輯組件Qt的一個端口。 除了標準文本編輯組件中的功能外,QScintilla還包含在編輯和調試源代碼時特別有用的功能。 這些包括對語法樣式,錯誤指示器,代碼完成和調用提示的支持。 選擇邊距可以包含調試器中用於指示斷點和當前行的標記。 樣式選擇比許多編輯器更開放,允許使用比例字體,粗體和斜體,多種前景色和背景色以及多種字體。

 

先貼一個源碼包下載地址:

https://riverbankcomputing.com/software/qscintilla/download

 

我的平臺是ubuntu 14.04,Qt5.

下面是下載解壓好的文件夾列表:

 

 

紅色數字1是移植後的Qt源碼工程,編譯通過後會生成對應的連接庫。

紅色數字2是在Qt下的一個編輯器的小Demo,之後會以example-Qt4Qt5爲例演示。

 

第一部分:編譯源碼生成共享庫

接下來用Qt Creator 打開1,生成ubuntu下的共享庫。可能是我虛擬機不大行,編譯了將近5分鐘~ ~ ~打開後可以簡單看看,那麼多源文件,辛苦作者了,向他們致敬!致敬這種開源精神!由於目標文件是生成共享庫,所以編譯完成後Qt Creator 會彈出下面的彈窗:

 

沒有可執行程序,直接點Cancel按鈕取消即可。Qt編譯後的文件夾下有很多中間文件以及其他文件,對於我們來講,有用的則是圖中生成的共享庫。接下來是example-Qt4Qt5的跑通。

 

 

 

第二部分:鏈接共享庫,運行例子

有了共享庫後,我們鏈接動態庫,運行例子。我的是Qt5 的版本,無法直接運行,需要做些改動。

①鏈接共享庫庫

需要包含庫的頭文件,鏈接共享庫。

 

鏈接共享庫是數字3部分的代碼。Lib文件夾的目錄如下圖。

 

 

②修改.pro編譯工程

由於Qt5對Qt4的不兼容,需要添加以下語句。

greaterThan(QT_MAJOR_VERSION,4):QT+=widgets

 

當程序中需要添加widgets模塊,

這行代碼的意思是,如果QT主版本大於4(也就是說當前使用的是Qt5或者更高版本),則需要添加widgets模塊。

也可以直接用“QT+=widgets”,但這樣可以保持與QT4的兼容性

 

 

由於代碼中使用了c++11標準,我們需要在在工程中配置C++11。

否則匯會報以下的錯誤!這是 C++11中的新語法!

 

 

O的K,現在就不會有錯誤了,全力運行!!叮咚~~

成功結果如下!

 

 

 

一個簡易的文本編輯器就誕生了~ 耶!!!

 

如果大家覺得還闊以,歡迎大家關注公衆號。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章