視窗工具介紹

Linux 視窗程式 視窗工具介紹 視窗架構

 

首頁
前言
網路導論
Linux 視窗程式
整合成果展示
心得與感想

 

Qt \Qt Designer & KDevelop :

X Window 提供Linux系統一個圖形化,視窗化的環境。若要撰寫 X Window 的應用程式,

最底層可用的函式庫就是 Xlib。然而用Xib直接來開發應用程式不是件容易的事,因為

中間牽涉到許多視窗與圖形介面的低階操作,過程很複雜。為了方便 X Window 的程式開

發,因而有各式各樣的 Tool Kit 出現。其中Qt是較為突出的一種。Qt是挪威Trolltech AS

司的產品,它是一套跨平台的視窗程式framework,可以同時跨 UNIX 與微軟視窗系統的

平台。因此使用 Qt 開發的程式,理論上可以不經修改而可以直接在 UNIX 與微軟視窗

系統上編譯使用 (在此指的是圖形介面部分的程式碼,我們的專題因需配合DSPMAP-CA

境,仍須在Linux作業系統下執行)。它是以C++ 物件導向式語言完成的 Tool Kit,著名的

Linux桌面環境KDE就是基礎於Qt發展出來的。

 

Qt Designer

 

Qt Designer是一個 GUI 的工具,這個工具可以幫助我們來加快寫 Qt 程式的速度。利用Qt

Designer可以用一種所見即所得的方式來產生Qt程式的GUI介面程式碼。通過增加一些功能

就可以完成一個程式了。總而言之,利用 Qt Designer可以非常快速的學會Qt

           

         

(圖一) Qt Designer 工作環境

 

Qt Signal/Slot/Emit 機制 :

Qt允許任何一個物件以emit發出一個signal,這個信號在程式中通常以connect函式連

接到某個物件的slotslot其實是一個函式,可以將它視為某個信號的服務函式。當

此信號一發出,Qt的機制會「立即」執行此信號的服務函式。這和一般的事件(event)

的處理不同,視窗framework處理事件的地方通常是在類似「背景」執行,也就是在

視窗產出後就進入一個迴圈等待事件的發生再加以處理。相較於這種事件  Qt的信

號處理效率高一些。       

    

                                   (圖二)sender , signal , receiver , slot 連接 

 

完成視窗架構及參數設定後,Qt Designer中的user interface compiler (uic) 根據我們

的 .ui檔(如form.ui) 產生header file ( form.h) implementation file (

form.cpp) application code in main.cpp #includes form.h 。

 

(圖三)所示。

 

                     

                          (圖三) relationship between .ui files, generated code and application code

  

              在(圖二)

                

 

Qt Designer 即會在.h檔中產生如下列 signal & slot 連接程式

  

 connect( conti, SIGNAL( clicked() ), this, SLOT( boqSlot() ) );

       connect( pause, SIGNAL( clicked() ), this, SLOT( aoqSlot() ) );

       connect( fileNewAction, SIGNAL( activated() ), this, SLOT( fileNew() ) );

       connect( fileOpenAction, SIGNAL( activated() ), this, SLOT( fileOpen() ) );

       connect( fileSaveAction, SIGNAL( activated() ), this, SLOT( fileSave() ) );

      connect( fileSaveAsAction, SIGNAL( activated() ), this, SLOT( fileSaveAs() ) );

      connect( fileExitAction, SIGNAL( activated() ), this, SLOT( fileExit() ) );

   

                                                       

 KDevelop

Qt Designer完成視窗的配置之後,我們把Qt Designer 所產生的 .h .cpp檔加入

KDevelopKDevelopKDE組織所推出整合式開發環境(Integrated Development

EnvironmentIDE),如同微軟的視窗環境下的Microsoft Visual C/C++Borland Turbo

C/C++。藉著使用 KDevelop可以很容易地在X Window開發出具有圖形使用者介面(GUI

的應用程式。KDevelop 整合了開發程式所需的編譯器、連結器(Linker)、除錯工具、版

本控制工具等。我們利用它來compile debug和產生執行檔,可以省下寫 Makefile的麻煩。

 

 

(圖四) KDevelop 工作環境