小さなPHP-GTKプログラム


PHP-GTKは、 GTK + GUIをPHPプログラミング言語に作成するためのツールキットバインディングです。 それについてはすでにHabréに書いています 。 非常に多くの人がこのライブラリに懐疑的であり、デスクトップでのPHPの使用に関してはそれほどでもありません。 しかし、 公式ウェブサイトの最近のニュースから明らかなように、何らかの形で図書館が存在し、さらに発展しています 。 したがって、PHP-GTKをより詳しく知り、小さなプログラムを作成することを提案します。

プログラムはウィンドウを作成し、整数(デフォルトは0)が含まれるテキストウィジェットを表示します。「増加」ボタンをクリックすると、数値が1つ増加し、「リセット」ボタンがテキストウィジェットの値をゼロにリセットします。


ベースウィンドウの作成


ウィンドウは、 GtkWindow()クラスのコンストラクターを使用して作成されます。 作成後にウィンドウがとる位置を決定するには、 set_position()メソッドを使用し、 set_title()がタイトルを設定し、 set_size_request()がウィンドウサイズを設定します(-1はコンテンツのサイズに基づいて高さが自動的に選択されることを意味します)。 ウィンドウが閉じられると、「破棄」信号が発せられます。 この時点で、プログラムを正しく完了するには、Gtk :: main_quit()を呼び出す必要があります。これには、 connect_simple()メソッドが使用されます。
$ window = new GtkWindow ;
$ window- > set_position Gtk :: WIN_POS_CENTER ;
$ window- > set_size_request 160 -1 ;
$ window- > set_title 'PHP-GTK' ;
$ window- > connect_simple 'destroy' 'Gtk :: main_quit' ;


ウィジェット


前述のように、プログラムは1つのテキストウィジェットGtkLabel()と2つのボタンGtkButton()を使用します。 それらをウィンドウに配置するには、特別な垂直コンテナGtkVBox()を使用する必要があります。 GtkWindow()を使用すると、ウィジェットを1つだけ配置できます。
$ vbox = new GtkVBox ;
$ label = new GtkLabel '0' ;
$ btn_inc = new GtkButton 'Zoom In' ;
$ btn_cancel = new GtkButton 'Reset' ;
$ vbox- > pack_start $ label ;
$ vbox- > pack_start $ btn_inc ;
$ vbox- > pack_start $ btn_cancel ;


ユーザーインタラクション


ボタンが押されると、「クリック」信号が発せられます。「ヒアリング」という関数を呼び出して、数値を増やして値をリセットし、キャンセルしてください。 connect_simple()メソッドでは、関数名の後に、呼び出された関数に渡されるパラメーターのリストがあります。 この場合、両方の関数にGtkLabel()ウィジェットを渡します。 現在GtkLabel()にあるテキストを取得するには、 get_label()メソッドを使用し、新しい値set_label()を設定する必要があります。
$ btn_inc- > connect_simple ' clicked ' 'increment' $ label ;
$ btn_cancel- > connect_simple ' clicked ' 'cancel' $ label ;

関数の増分 $ label
{
$ int = $ label- > get_text ;
$ int ++;
$ label- > set_text $ int ;
}

関数キャンセル $ラベル
{
$ label- > set_text '0' ;
}

あとは、コンテナをウィンドウに追加して、画面にウィンドウを表示するだけです。 完全なプログラムコード:
<?php

$ window = new GtkWindow ;
$ window- > set_position Gtk :: WIN_POS_CENTER ;
$ window- > set_size_request 160 -1 ;
$ window- > set_title 'PHP-GTK' ;
$ window- > connect_simple 'destroy' 'Gtk :: main_quit' ;

$ vbox = new GtkVBox ;
$ label = new GtkLabel '0' ;
$ btn_inc = new GtkButton 'Zoom In' ;
$ btn_cancel = new GtkButton 'Reset' ;
$ vbox- > pack_start $ label ;
$ vbox- > pack_start $ btn_inc ;
$ vbox- > pack_start $ btn_cancel ;

$ btn_inc- > connect_simple ' clicked ' 'increment' $ label ;
$ btn_cancel- > connect_simple ' clicked ' 'cancel' $ label ;

関数の増分 $ label
{
$ int = $ label- > get_text ;
$ int ++;
$ label- > set_text $ int ;
}

関数キャンセル $ラベル
{
$ label- > set_text '0' ;
}

$ window- > add $ vbox ;
$ window- > show_all ;
Gtk :: main ;

?>


公式サイトPHP-GTK
マニュアル

Source: https://habr.com/ru/post/J64101/


All Articles