8月 07, 2013

Linux:使用gtkmm、glade3開發C++ 圖型介面I程式(一)簡介

一、開發環境與版本

作業系統:ubuntu 13.04
GTK+圖形介面函式庫的C++介面:gtkmm 3.0
GTK+視覺化使用者界面設計工具:glade 3.14.2
C++編譯器:g++ 4.7.3

二、使用glade建立GTK+圖型介面
(一)構成圖型界面
1、基本視窗(top level window)。
2、容器(Container),如VBox、HBox...。
3、視窗元件(Widget),如button、label...。
4、設定視窗元件屬性,如偵測Clicked事件,自定信號處理。

(二)存檔,新版産生xml格式設計檔( .glade),廣泛提供其它程式語言解析、建立變數與設定處理信號。

(舊版程式則是針對C、C++、Ada95、Perl等程式語言依設計圖形界面産生原始碼,再與主程式一起編譯為執行檔,以C為例,産生下列原始碼:
1、Interface Create Functions:interface.c、interface.h。
2、Signal Handler & Callback Functions:callback.c、callback.h。
3、Support fufunctions:support.c、support.h。)

(三)預覽圖形界面

三、編譯圖型介面程式
(一)建立專案資料夾(Project Folder),放置三個檔案:
1、標頭檔(.h Header File):定義類別(Class)等項目。
(1)引用gtkmm.h。
(2)成員變數(Member Variable)、成員函數(Member Function)及其它類別,此外,需定義構成圖形介面並與信號處理相關的的小元件(Widget),如按鈕(Button)、標籤(Label)等。
(3)設定圖形介面的應用程式介面(API)Gtk::Builder,編譯時載入XML格式檔。
(4)宣告建構子(Constructor)及解構子(Destructor)(解構子可省略),此時僅宣告存取層級(Public)(保留於程式碼原始檔處,配合Builder參考glade設定檔,實作圖形介面(Implementation))。
(5)信號處理(Signal Handlers),定義處理圖形界面小元件觸發事件(Event)。

2、根據標頭檔撰寫的程式原始檔(.cc or .cpp Source File):

3、圖形介面格式檔(.glade):經由Glade設計儲存的XML格式檔。





(二)在文字終端下達指令編譯(粉色字為固定指令;白色字體為原始碼檔,依序為主程式、界面程式及執行檔)。

   g++ xmain.cpp xglade.cpp -o xmain  `pkg-config gtkmm-3.0 --cflags --libs`


8月 06, 2013

Linux系統:轉換正體中文與簡體中文文字編碼!

寫這篇文章最主要的,是怕自己忘掉後每次花很長的時間找資料。

、網際網路四通八達,許多取自網路的中文資料,除很大一部份是簡體編碼,造成台灣使用者的困擾,因此轉換編碼的需求應運而生,首先僅就曾用過的中文內碼,簡介其編碼系統:
(一)1.大五碼(Big5)
1983年由台灣地區電腦廠商推出的中文系統編碼業界標準,使用在DOS、Windows 3.1、 Windows 95及Windows98等正體中文作業系統作為內碼。
(二)簡體中文(GB2312)
1981年由中國大陸發布的政府標準,全稱為信息交換用漢字編碼字符集.基本集,使用於簡體中文系統作為內碼。
(三)統一碼(UTF8)
1993年正式在美國USENIX會議正式推介,以容納世界上大多數字符的編碼。

二、Linux系統轉換簡體中文為正體中文編碼

請於文字終端輸入下列指令,只轉換檔案內容文字符號的編碼,但檔名編碼並不會跟著更改(gbfile.txt為簡體中文檔,outputfile.txt為輸出正體中文編碼)

iconv gbfile.txt -f gb2312 -t big5 | iconv -f big5 -t utf8 -o outputfile.txt

三、Linux系統轉換正體中文編碼簡體中文

請於文字終端輸入下列指令

 iconv big5file.txt -f big5 -t utf8 | iconv -f utf8 -t gb2312 -o outputfile.txt


 請參考!