Starting Off in Anjuta 2002 Ishan Chattopadhyaya 在符合自由軟件基金會發布的GNU 自由文檔許可証  〔版本1.1以上﹐不含任何 Invariant Sections和前後封面文字〕的條款的條件下﹐  允許拷貝、發布或修改本文件。你可以去該基金會網址或寫信給該基金會﹐以便從自由軟件基金會  得到 GNU 自由文檔許可証 的一份拷貝﹔自由軟件基金會的網址為﹕ http://www.fsf.org  地址為﹕ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 許多名稱被一些公司宣布為商標,用來標明它們的產品和服務.當這些名稱在任何 GNOME 文件資料中出現、並且GNOME說明文件開發項目的成員知道這些名稱是商標時, 這些名稱將被以大寫或首字母大寫的方式打印。 This is version 1.0 of 'Starting Off in Anjuta'. 前言 以前開發 Linux 程序時寫出好的圖形化用戶界面比較難. 在 GIMP 工具包 (GTK)誕生之後, 這件事就變得比較容易了. 當 Damon Chaplin 寫出 GLADE 這個用於在 GTK 環境下生成圖形化用戶界面的工具後, 就更容易了. 但是 GLADE 仍然不能算是一個“集成開發環境”(如 Visual Basic 等等.)﹐ 因為程序員不能在 GLADE 的環境下手動修改 GLADE 產生的代碼。現在﹐這一切都已成為過去﹕ Anjuta誕生了! Anjuta 利用 GLADE 生成優美用戶界面的能力﹐加之以自己強大的源程序編輯能力, 正成為一個極好的應用程序快速開發的集成環境〔IDE〕. 以前﹐人們使用 GLADE 做界面﹐用 emacs 或 vi 等等編輯程序﹐再用某種終端模擬器編輯開發項目. 使用 Anjuta, 所有這些繁雜零散的任務都可以在一個統一的、集成的、自然而然的環境下完成。 這正是集成開發環境的魅力所在﹗. 來吧﹐讓我們先用 Anjuta 建立一個簡單的Hello World 程序﹔它將把你直接帶到 Anjuta 的世界。 本教程將會著重講設計部分﹐也捎帶講一點有關的 GTK 代碼. (欲知 GTK 的細節, 請訪問 GTK 網站) 建立一個新的應用項目 先請打開 Anjuta. 請選擇菜單項 File -> New Project. GNOME應用程序精靈 "GNOME Application Wizard" 將會出現. 盡管人們衹要點擊“下一個”〔Next〕按鈕就可以﹐而不必去管精靈對話框上有些什么信息﹐這裡還是希望您能讀一下對話框上的每一條信息。現在﹐在您讀完精靈第一步的對話框上的信息後﹐請按 Next 按鈕。 第二步非常關鍵。這裡您需要決定您要建立的應用程序的類型。讓我們選擇 "Gnome Application" ﹐然後繼續走下去。 第三步要確定應用程序的基本配置。請非常仔細地填入應用程序的配置信息。在本教程中﹐請輸入以下信息。 Project Name: Hello World〔程序項目名〕 Author: (你的名字) Version: 0.1〔版本號〕 Program name: hello〔程序名〕 Source Directory: src〔源程序子目錄〕 Documents Directory: doc〔說明文件目錄〕 Pixmaps Directory: pixmaps〔圖象文件目錄〕 下面第四步選擇編成語言﹔這里我們選 C 語言。 如果您不想要﹐您可以去除 Gettext 功能項. 您最好為本應用程序項目選擇一個圖標﹐該圖標將會出現在 GNOME 應用程序菜單中。這里我們選取 Hello World example作為項目名﹐ 在 Group 域選取 Applications。最後點擊 Next 按鈕和 Finish 按鈕。這時本應用程序項目就建立起來了。 因為我們衹是在建立一個例子程序﹐我們可以輕鬆前行。如果我們是在建立一個要在現實世界使用的應用項目﹐ 那我們在填寫應用程序精靈每一步的參數時可要格外小心﹐因為它們對您的應用程序項目來說非常重要。 設計用戶界面 在與應用程序精靈對話結束之後, Anjuta 就開始建立您的應用程序項目的目錄結構﹐運行參數配置腳本並建立應用項目本身。 整個創建過程的進行情況顯示在 Anjuta 開發環境的下部。創建過程結束後, 屏幕的左邊示出應用項目樹結構。這個樹結構中包含您的源程序文件﹐說明文件和圖形文件。 現在是啟動 GLADE 並用其設計圖形用戶界面的時候了。請到菜單項 ViewEdit Application GUIs 去運行 GLADE。 您將看到三個窗口: 1) Glade 主窗口, 2) 屬性窗口, and 3) 繪圖工具窗口。
Glade 窗口 Glade 窗口
因為我們並不是在創建一個真正要用的王牌應用程序, 我們不必取預置的 Gnome 設置。取一個簡單的 GTK 視窗就行了。請點擊 Glade 主視窗上列出的第一項 〔hello_app〕﹐ 然後按 Del 刪除鍵。 現在到工具視窗〔Palette〕, 點擊第一個圖標。這時一個空白的 GtkWindow 建起來了。這將是我們的應用程序的主視窗 window1。再到屬性視窗〔Properties〕,敲入標題“Hello World!”. 現在再到工具視窗上選取一個垂直包容框〔Vertical Box Container〕放到主視窗 window1 上。列數取為 2.
Palette icons 工具圖標
這樣﹐主視窗被切分為同等大小的上下兩部分. 同樣地﹐我們再用水平包容框將這兩部分各自再切分為左右兩部分。 這時主視窗應該看起來這個樣子﹕
用戶界面 用戶界面
現在再從工具視窗中取出兩個按鈕﹐分別加到主視窗下面的兩個框中。再把這兩個按鈕的名字和標簽屬性設置如下﹕ 左按鈕: 名字: BT_OK 標簽: OK 右按鈕: 名字: BT_EXIT 標簽: Exit 在視窗的上半部﹐左邊再加上一個標簽控件﹔在上半部右邊加上一個輸入框 Entry 控件。該輸入框的名字取為 ENTRY。將上述標簽控件的標簽屬性置為 'What's your name, sir?'. 現在在屬性視窗的屬性檔(Signals tab)上把兩個按鈕都和 Clicked事件連接起來. 使用GLADE預設的反向調用函數名. 請不要忘記點擊 Add 按鈕. 這種常見的錯誤會導緻產生空白的 callbacks.c 文件. 在源文件callbacks.c上,我們將會通過 Anjuta界面加入 源代碼. 現在,主視窗看起來似乎不那么漂亮。您可以試試改變視窗的寬度和高度﹐以及試試改改水平和垂直包容框的幾個屬性﹐ 看看能不能讓視窗好看些。〔註意﹕您可到菜單View﹐選擇控件樹﹐然後選擇控件。 〕 下面是一些屬性的設置﹕ 將下面的水平包容框的屬性 Homogeneous 置為Yes; 將屬性視窗的定位檔的按鈕的屬性 Fill 置為 Yes; 將主視窗 window1 的屬性 Grow 置為No. 把這些屬性改來改去後﹐我的主視窗的樣子如下:
最終的界面 最終的界面
設計好界面後﹐在Glade主視窗上點擊“存盤”按鈕﹐然後再點擊“創建”按鈕. 這就按您新設計的界面更新了您的 應用項目的src目錄下的源文件 interface.c。現在﹐讓我們選菜單 File -> Exit﹐回到 Anjuta 用戶界面下。開始編程啦!
編輯程序 現在回到 Anjuta 環境中來,您應該可以在屏幕左邊的項目源程序列表中看到 callbacks.c. 雙點擊打開該程序. 這樣我們在Anjuta集成開發環境的左邊就可以編輯該程序了。 有時一事物如果是有色彩的話就會變得更容易理解、更有趣。Anjuta 的“語法強調色”功能 (在“Format”菜單上)就屬於這種情況. Anjuta還有很多很多有用的功能﹐您可以慢慢品玩。 也許現在花點時間熟悉熟悉這個集成環境是很有好處的。 現在回到 callbacks.c 文件,我們看到兩個反向調用函數: on_BT_OK_clickedon_BT_EXIT_clicked. 讓我們在第二個函數中加入一個函數調用﹕gtk_main_quit()。 這樣﹐該函數變成﹕ void on_BT_EXIT_clicked (GtkButton *button, gpointer user_data) { gtk_main_quit(); } 這個函數調用的目的是當用戶點擊退出按鈕時﹐整個應用程序會結束。 與此相仿﹐我們在 on_BT_OK_clicked函數中加入下列函數調用﹕ void on_BT_OK_clicked (GtkButton *button, gpointer user_data) { GtkWidget *entry = lookup_widget (GTK_WIDGET(button), "ENTRY"); GtkWidget *msgbox = gnome_app_new("Hello World", "Hello World"); gchar *text1, *text2; text1 = gtk_entry_get_text (GTK_ENTRY(entry)); text2 = strcat ("Hello, ", text1); gnome_app_message (GNOME_APP(msgbox), text2); } 現在我們將源程序文件 callbacks.c 存盤﹐然後關閉(可用菜單 File 上的選項或用工具條上的圖標〕。 生成目標代碼﹐執行﹐以及發行 現在到了測試您程序的時候了﹔這一定很有趣。先選擇菜單項 BuildBuild All 。 這時Anjuta就開始編譯和鏈接項目里的源程序main.c, interface.c, support.c and callbacks.c﹐ 然後將產生的可執行文件hello放到 src 目錄。編譯器一般會用 gcc。 如果您幸運, 編譯過程沒有任何錯誤信息的話﹐請選菜單項 BuildExecute 於是Anjuta 開辟一個終端視窗﹐並在其上運行您的應用程序 Hello World! 請在輸入框上輸入您的名字﹐然後點擊 OK 按鈕. 希望這時您的應用程序回您一個問候﹕Hello ... 您可再敲入一個問候詞﹐然後點退出按鈕 Exit﹐看看程序能否正常退出。如果正常退出﹐那真好! 您的辛勤勞動終於有了結果! 這時您可把您的應用程序安裝到視窗系統中去﹕選菜單項 Build Install 盡管您現在也許並不想為您的應用程序創建一個tarball文件﹐ 但也許以後您要發行軟件時就需要這樣做了。 在發行應用程序前,務必要填好 TODO,ChangeLog, INSTALLREADME 這幾個文件. 要創建一個應用程序的發行版,請點擊 Build Build Distribution 創建過程也許會持續幾秒鐘﹐最終會在 /home/(username)/Projects/hello/ 目錄下建立一個文件 hello-0.1.tar.gz。 現在您可以拿著這個証明您能力的可執行文件到處去炫耀炫耀了! 結論 盡管本教程從功能來說相當簡單﹐我還是希望它能夠讓Anjuta的初學者 對這個集成開發環境的使用有點感性認識。至於我﹐我年齡16歲, 現在就讀於Allahabad, India的一個高中. 您若有什么建議﹐可以以下列地址和我聯系﹕ichattopadhyaya@hclinfinet.com。 若有什么問題需要澄清﹐請將問題寫給 Anjuta電郵表 (您可以到anjuta.sourceforge.net去加入這些電郵表). 繼續品玩 Anjuta吧﹐祝您好運!〔翻譯者﹕江毅﹐2003/7/22﹐jiangyi@hanwj.com〕