GUI程序原理分析

1,Qt 是一套跨平臺的程序設計庫,這套程序設計庫主要用於 GUI 方面的程序設計開發,因此本系列博文主要是利用C++介紹 GUI 程序設計技術;數據庫

  

2,命令行應用程序:編程

    1,命令行應用程序的特色(Command Line Interface):服務器

       1,是一種基於順序執行結構的可執行程序;架構

           1,有一個固定的開始、固定的結束;函數

       2,程序執行過程當中不須要與用戶產生交互;工具

           1,爲何叫作命令行應用程序,由於它體現出給人的感受就是一 個一個的命令,好比 ls;操作系統

           2,ls 這條命令其實對應着一個程序,這是一個命令行應用程序;命令行

           3,ls 一旦開始執行,就執行單一的列出文件或文件夾任務,列完後主動退出;設計

       3,程序執行後給出最終的運行結果;blog

           1,gcc a.c b.c c.c;

               1,利用 gcc 這個命令行應用程序完成編譯這三個 C 程序的任務,在編譯器編譯過程當中不產生用戶交互,編譯結束後或者生成可執行程序或者給出錯誤信息或警告信息;

    2,命令行應用程序的運行模式:     

 

       1,很是簡單,就是從 main() 函數開始調用各類函數,調用完以後,咱們的任務就完成了,程序運行結束;

       2,特色:

           1,程序的運行有固定的開始(敲回車運行某個命令的時候開始) 和固定的結束(命令行完成命令後結束);

       3,命令行應用程序蘊含的軟件設計方法:

           1,一種面向過程的程序設計方法,將一個大的問題分解爲各類小 的問題,而後將小的問題逐個解決,整個大的問題也就解決了,對應到這裏就是 main() 函數要完成一個大任務,首先 function1()  完成一個小任務,而後 function2() 完成一個小任務,最後經過 function4() 完成一個任務,這樣大任務就完成了;

    3,命令行應用程序適用於:

 

       1,單任務場合;

       2,無交互或簡單交互場合;

       3,服務器應用場合:

           1,自身運行所佔用的資源不多;

    4,命令行應用程序是早期計算機系統中的主要程序類型:

       1,早期計算機系統主要用來進行科學計算,科學計算須要科學家輸入數據,運行後給出結果,因此說對於科學計算來講必然有一個規定的開始、一個固     定的結束,計算機進行計算過程當中,是不須要和咱們當時的科學家進行交互的,科學家只須要知道一個結果;

       2,命令行應用程序的誕生是有歷史緣由的,早期的計算機系統中就只須要命令行應用程序就能夠了;

          

3,圖形界面應用程序:

    1,圖形界面應用程序的誕生:

       1,隨着計算機技術的發展,計算機走進平常生過;

       2,計算機程序開始須要處理各個領域中的問題;

           1,處理大量非科學問題;

       3,計算機用戶已經再也不是專業的計算機工做者;

    2,問題:

       1,如何讓計算機程序更好的適應普通用戶並走進平常生活?

           1,用圖形界面應用程序;

    3,圖形界面應用程序的特色(Graphic User Interface):

       1,是一種基於消息驅動模型的可執行程序;

       2,程序的執行依賴於用戶的交互過程;

           1,由於要和用戶進行更好的交互;

       3,程序執行過程當中實時響應用戶操做;

       4,通常狀況下程序執行後不會主動退出;

           1,被動的、多任務程序;

           2,和命令行應用程序最大的本質不一樣;

    4,圖形界面應用程序的運行模式:

 

       1,設計圖形用戶界面是什麼樣子,這種設計最後會體如今咱們的程序當中;

       2,圖形界面應用程序運行模式有必定的規律可循,通常而言會從main() 開始,顯示有個性的圖形界面須要首先定義主窗口,其次建立主窗口(對    於一個操做系統而言,它的主窗口樣式通常都是同樣的)、而後建立主窗口中的元素(按鈕、菜單、工具欄)、以後顯示主窗口,最後進入消息循環(等用戶操做,爲了讓這個程序不能往下執行,則程序執行死循環), 這個循環等待着操做系統來給這個應用程序發消息;到

    5,圖形界面應用程序的消息處理模型:

      

       1,本圖是用戶如何使用計算機的原理圖;

       2,普通的用戶沒法使用計算機,由於此時計算機只是一堆硬件,普通用戶若是要使用計算機,須要藉助操做系統的支持,當操做系統安裝到計算機後,用戶就可使用計算機了;

       3,用戶的操做主要分爲兩類:鼠標操做,鍵盤操做;

       4,用戶對計算機操做後,操做系統內核就可以檢測到用戶操做,若是發現用戶是點了鼠標,系統內核會根據當前操做點鼠標生成一個系統消息;

       5,系統消息被系統內核發送到有焦點的應用程序;

       6,圖形界面應用程序中都有一個消息隊列,系統消息是被放到有焦點的 應用程序中的消息隊列中;

       7,消息循環就會從這個隊列中將系統消息取出來,而後調用消息處理函數;

       8,圖形界面應用程序必須編寫消息處理函數用於處理對應的消息;

   (9),圖形用戶界面應用程序多數時候就是編寫消息處理函數處理消息。

    6,圖形界面任務程序適用於:

 

       1,多任務場合:

           1,功能比較強大;

           2,編寫文字、編程、畫圖;

       2,強用戶交互場合;

       3,非專業計算機用戶:

           1,辦公室職員;

           2,圖形界面應用程序是當代計算機中的主要程序類型;

 

4,圖形界面程序 VS 命令行程序:

    1,當代大型軟件產品架構模型:     

 

       1,圖形界面應用程序和命令行應用程序是互補的關係,不是競爭關係, 命令行程序因爲單任務特性,通常用來開發後臺應用程序,圖形界面應用程序交互性比較好,用於用戶界面交互層;

       2,圖形界面交互層用的技術有 Qt、MFC、.Net 等;

       3,架構分紅出網路更新模塊、數據庫管理模塊、虛擬機引擎模塊(爲了擴展性、可修改可維護性)等的命令行程序,通常在安裝軟件下呈現爲 .exe文件;

       4,合理的應用圖形界面應用程序和命令行應用程序每每會給咱們的軟件質量帶來提升,這也是一個架構師的藝術,如何在某個領域選擇更好的技術,要看到某種技術的優點在哪裏,不要只看到新技術忽略舊技術;

 

5,小結:

 

相關文章
相關標籤/搜索