PHP開發學堂:PHP-GTK介紹及其應用

來源:互聯網
上載者:User
關鍵字 PHP開發學堂:PHP-GTK介紹及其應用

   1. PHP-GTK介紹
  1.1 PHP-GTK
  PHP-GTK是PHP的延伸模組,它可以讓程式設計師寫出在用戶端執行的、且獨立的GUI的程式。這個模組不允許在瀏覽器上顯視GTK+的程式,它一開始就是開發來寫獨立的GUI程式的。
  
  1.2 GTK
  GTK原本是為GIMP,一個GUI的影像處理軟體而開發的。GTK+是GIMP的套裝工具。GTK+從這裡開始發展,直到現在已經成為Gnome的中心(Gnome是一個案頭環境)。後來GTK+也已經被推廣到BeOS和Win32,使得它成為PHP延伸模組的最佳選擇,維持PHP可以跨平台並可以用PHP為Linux,BeOS,Windows等平台開發視窗介面的程式。
  
   2. PHP-GTK概念
  2.1 前言
  接下來就要教各位一點點比較觀念性的東西羅┅因為這章的概念都是非常重要的,所以就算不懂,也還是要慢慢的看懂它,不然┅以後就┅。還有,接下來的內容不建議沒有程式設計經驗的讀者閱讀,因為有很多的觀念很容易會搞不清楚。還有,接下來該用英文的部分我都會用英文,這樣大家在看國外檔案的時候才不會不知所措,加油吧!!如果對本章有任何不懂之處,請自行查閱
  PHP-GTK Manual:http://gtk.php.net/manual/en/
  
  2.2 Widget(s)
  Widget是一個GUI程式中基本的functions和forms。最常用的幾個Widget是:label、button、window、frame和text box。所有的widget都是來自於一個抽象的基本class─GtkWidget。每個widget都是一個class
  
  一個Widget一生大概都有五個時期:
  1. 建立(Creation):宣告一個對象(declaring an object)
  2. 放置(Placement):將它加入一個容器中(adding it to a container)
  3. 訊號串連(Signal Connection):接收訊號以及進行動作(the action it will perform)
  4. 顯示(Display):它是否是可見的(whether it is viewable or not)
  5. 刪除(Destruction):關閉程式(closing of a program)
  
  2.3 Container(s)
  Container是一個可以包含其它widget的widget。大部分的widget都是container,例如:GtkWindow、GtkTable和GtkBox。除了這點之外,container跟其它的widget沒兩樣,也可以被放到其它container去。而所有的container都是來自於一個class─GtkContainer,本身來自於GtkWidget的class。所以container也是widget的一種。
  
  2.4 Signal(s)
  當程式設計師在程式中做了一個動作時,程式需要有一個動作來回應使用者的動作。Signals使程式可以知道使用者做了動作並可以觸發適合的回應。
  
  例如,當使用者按了一個可以開新視窗的按鈕(GtkButton),程式認出這個請求,於是就開了一個新的視窗。這件事可以經由signal來做到。當按鈕按下去之後,會使widget發出一個signal,接著再由該signal觸發callbacks,產生一個新的視窗(GtkWindow)。
  
  2.5 Callback(s)
  Callback就是當signal送出之後,被signal喚起的function。Callback會執行function傳回一個值或是做一個動作。Callback就是signal的handler funciton。它可以是該signal的預設handler或著是程式設計師定義的function。要建立一個callback,就必須把function connect 到 signal。
  
  2.6 Signal Inheritance(繼承)
  和methods一樣,signals可以被對象繼承。一個widget可以送出任何它的parent widget可以送出的還有它自己特有的signal。
  
  2.7 Connecting Signals
  你必須為PHP-GTK指定一個callback function當signal送出時來對signal做回應。把一個signal串連到一個function可以用connect() 這個object 方法達成。
  
  如下:
  
    //建立一個GtkWindow
  $window = &new GtkWindow();
  //將"destroy" signal用connect() 方法串連到shutdown函式
  $window->connect("destroy", "shutdown");

1 2 3 4 5 下一頁
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.