QScintilla下載與編譯


 

你好,我是大賀! Pou光明 

 

 

大家好,我又回來了~~

之前和大家分享的是在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,現在就不會有錯誤了,全力運行!!叮咚~~

成功結果如下!

 

 

 

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

 

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

 

 
 

微信掃一掃
關注該公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM