(一)、一步一步學GTK+之開篇


   本人作為一個老程序員(僅指年齡老)想要學習一些跨平台的開源項目,比如GTK+、GStreamer等,特寫博客方便自己加深記憶,可能很多內容是直接從一些教程中摘取,如涉及到版權問題,請聯系我:28341847@qq.com.

   本系列根據《GTK+程序設計中文版》(pdf版)中內容,摘取一些個人認為比較重要的內容或代碼,並加上一些個人的注釋和心得,以達到學習的目的,其中會涉及到在linux和windows下區別,力爭做到所有代碼跨平台編譯。

   示例代碼環境:
   windows:  win7+minGW+code::block
   linux:    centos6.3+code::block (VirtualBox虛擬機中)

一、什么是GTK+

    GTK+ 是一種函數庫是用來幫助制作圖形交互界面的。整個函數庫都是由C 語言來編寫的。 GTK+函數庫通常也叫做 GIMP 工具包。因為,一開始GTK+是用來編寫“GIMP”–這個圖形處理軟件的。從那以后, GTK+就逐漸成為了Linux and BSDUnix 下最受歡迎的用於圖形交互界面(GUI)設計的工具包之一。時至今日,大多數的Linux 下的GUI 軟件(有圖形交互界面)都是由GTK+或者QT 來編寫的。GTK+是一種面向對象式的API(applicationprogramming interface)。Glib 是GTK+的基礎,而這種“面向對象系統”正是由“Glib”來提供的。GObject 也就是這種面向對象的機制可以為 GTK+綁定很多種開發語言。目前存在的語言有:C++, Python, Perl, Java, C#,PHP,等其他高級語言。
GTK+ 和以下“函數庫”存在着依賴關系
   • Glib
   • Pango
   • ATK
   • GDK
   • GdkPixbuf
   • Cairo
   Glib 是一種通用的函數庫。她提供了各種各樣的語言特性,譬如說:各種數據類型,字符串函數,錯誤通知,消息隊列和線程。Pango 是一種函數庫,用來實現國際化和本地化的功能。ATK是一種平易近人的工具函數包,她提供了快捷鍵服務為肢體有缺陷的人使用電腦提供了便利。GDK 是一種函數庫,她為整個GTK+圖形庫系統提供了一些底層的“圖形實現”和“窗口實現”的方法。在Linux 中GDK 是位於X 服務器和GTK+函數庫之間的。在最近的GTK+發行版本中,越來越多的功能性函數,都交給了Cairo 函數庫來處理。GdkPixbuf 函數庫是一種函數庫工具包用於加載圖像和維護圖像“緩存”的(pixel buffer)。Cairo 是一種函數庫用於制作二維圖像。從GTK+2.8 版本以后,Cairo 就正式成為GTK+系統中的一員了。Gnome and XFce 桌面環境系統都是用GTK+來編程實現的. SWT and wxWidgets 是種很著名的編程框架,也是用GTK+來編程實現的。最傑出的GTK+軟件的代表是Firefox (火狐瀏覽器)和 Inkscape。

二、安裝GTK+開發環境

1. 安裝code::blocks
  linux:  http://www.codeblocks.org/downloads/26#linux64 我下載的是centos版的
  windows:  http://www.codeblocks.org/downloads/26#linux64 可直接選擇帶minGW的版本

2.安裝GTK+(YUM安裝)

  linux:  

yum install gtk2 gtk2-devel gtk2-devel-docs

  windows:
     http://www.gtk.org/download/win32.php 下載all-in-one bundle 安裝即可

3.配置code::blocks中的GTK+編譯器
  現在安裝了gtk后,可以用pkg-config --list-all 查看,其中應該包含一個gtk+-2.0.
  在code::blocks中 默認的編譯器是GNU GCC Compiler,我們為 GTK單獨設置一個編譯器:
  Settings -> Compiler settings ,選擇GNU GCC Compiler 然后點擊 copy ,輸入一個gtk編譯器的名稱:GUN GCC Compiler GTK2.0,並設置為默認編譯器,點擊 set as default .然后在 Compiler settings -> Other options -> 添加`pkg-config --cflags gtk+-2.0`(目的是添加include),在linker settings -> Other linker options 中也添加 pkg-config --libs gtk+-2.0`(目的是添加lib),如果在windows下運行時候可能會報錯,如果缺少zlib1.dll ,放在 工程/bin/Debug下即可。

 

4.測試一下環境是否正確
 在codeblocks中新建一個工程,選擇上面新添加的編譯器(GUN GCC Compiler GTK2.0),然后在main.c中添加代碼:

#include <gtk/gtk.h>
int main( int argc, char *argv[])
{
    GtkWidget *window;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_show(window);
    gtk_main();
    return 0;
}


編譯並執行出現一個空白窗體(linux下在命令行下執行),即代表gtk+的開發環境配置成功了。順便說下可以直接用gcc命令行生成:
gcc -o hello-world main.c  `pkg-config --cflags --libs gtk+-2.0`

下面是在windows 7 和 linux(centos) 下的效果

 

 


免責聲明!

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



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