検索
ホームページバックエンド開発PHPチュートリアルPHP-GTK とそのアプリケーションの概要_PHP チュートリアル

PHP-GTK とそのアプリケーションの概要_PHP チュートリアル

Jul 13, 2016 pm 05:26 PM
php導入できるそれ応用伸ばすはいモジュールデザイナー

1. PHP-GTK の概要 1.1 PHP-GTK PHP-GTK は、プログラマがクライアント上で実行される独立した GUI プログラムを作成できるようにする PHP の拡張モジュールです。このモジュールでは、GTK+ プログラムをブラウザーに表示できません。元々はスタンドアロン GUI プログラムを作成するために開発されました。 1.2 GTK GTK は元々、GUI 画像処理ソフトウェアである GIMP 用に開発されました。 GTK+ は GIMP のツールスイートです。 GTK+ はここから進化し、現在では Gnome の中心となっています (Gnome はデスクトップ環境です)。その後、GTK+ は BeOS および Win32 にも昇格され、PHP 拡張モジュールとして最適な選択肢となり、PHP のクロスプラットフォームを維持し、PHP を使用して Linux、BeOS、Windows およびその他のプラットフォーム用のウィンドウ インターフェイス プログラムを開発できます。 2. PHP-GTK の概念 2.1 まえがき 次に、概念的なことをいくつか教えます ┅ この章の概念は非常に重要なので、理解できなくても、ゆっくり理解する必要があります。未来┅。また、以下の内容は混乱しやすい概念が多いため、プログラミング経験のない読者にはお勧めできません。また、海外の文書を読むときに皆さんが戸惑わないように、次の部分は英語で説明します。この章で分からないことがあれば、自分で PHP-GTK を確認してください。マニュアル: http://gtk.php.net/manual/ja/ 2.2 ウィジェット ウィジェットは、GUI プログラムの基本的な機能とフォームです。最も一般的に使用されるウィジェットは、ラベル、ボタン、ウィンドウ、フレーム、テキスト ボックスです。すべてのウィジェットは、抽象基本クラス GtkWidget から来ています。すべてのウィジェットはクラスです。ウィジェットの存続期間にはおよそ 5 つの期間があります。 1. 作成: オブジェクトの宣言 2. 配置: オブジェクトをコンテナー コンテナーに追加します。 3. シグナル接続: シグナルを受信し、アクションを実行します ( 4. 表示: 表示可能かどうか 5. 破棄: プログラムの終了 2.3 コンテナ コンテナは、他のウィジェットを含めることができるウィジェットです。ほとんどのウィジェットは、GtkWindow、GtkTable、GtkBox などのコンテナーです。これを除けば、コンテナは他のウィジェットと同様であり、他のコンテナに配置できます。すべてのコンテナは 1 つのクラス GtkContainer から来ており、このクラス自体は GtkWidget クラスから来ています。したがって、コンテナもウィジェットの一種です。 2.4 シグナル プログラマがプログラム内でアクションを実行するとき、プログラムにはユーザーのアクションに応じたアクションが必要です。シグナルを使用すると、プログラムはユーザーがアクションを実行したことを認識し、適切な応答をトリガーできます。 たとえば、ユーザーが新しいウィンドウを開くことができるボタン (GtkButton) を押すと、プログラムは要求を認識し、新しいウィンドウを開きます。これは信号を介して実行できます。ボタンが押されると、ウィジェットは信号を送信し、その信号によってコールバックがトリガーされて新しいウィンドウ (GtkWindow) が生成されます。 2.5 コールバック コールバックは、シグナルの送信後にシグナルによって呼び出される関数です。コールバックは関数を実行し、値を返すかアクションを実行します。コールバックはシグナルのハンドラー関数です。これは、シグナルのデフォルトのハンドラーまたはプログラマ定義の関数にすることができます。コールバックを作成するには、関数をシグナルに接続する必要があります。 2.6 シグナルの継承 (Inheritance) メソッドと同様に、シグナルもオブジェクトに継承できます。ウィジェットは、親ウィジェットが送信できる任意の信号だけでなく、独自の固有の信号も送信できます。 2.7 シグナルの接続 シグナルの送信時にシグナルに応答するために、PHP-GTK のコールバック関数を指定する必要があります。シグナルを関数に接続するには、connect() オブジェクト メソッドを使用します。 以下のように: connect("destroy", "shutdown"); // ボタンのテキスト「Click me」を含む GtkButton を作成します $button = &new GtkButton("clicked"); " you_clicked"); // GtkButton をコンテナーである GtkWindow に配置します。 $window->add($button); // $window とそのすべての子ウィジェットを表示します。メインプログラム return Circle (プログラムの起動を意味します) gtk::main(); ?> これを実行すると、「Click me」というボタンが表示されたウィンドウが表示されます。ボタンを押すと、プログラムは you_clicked を実行します。関数。このプログラムでは、ユーザーがウィンドウの右上隅にある「X」を押すと $window オブジェクトの「destroy」信号が送信され、ユーザーが押すと $button オブジェクトの「clicked」信号が送信されます。ボタンがプレゼントされます。 gtk::main() の最後の行は、プログラムの実行を開始するようにコンピューターに指示するために実行する必要があります。実行が開始されたので、gtk::main_quit で停止できます。 () プログラムされています。 上記の例を読んだ読者の中には、「シグナルを送信するウィジェット以外のウィジェットのメソッドを実行したい場合はどうすればよいのですか?」という疑問を持つ人もいるかもしれません。このとき、別のメソッド connect_object() が必要になります。スパンオブジェクトはメソッドを呼び出すか、他のオブジェクトを関数パラメータとして渡します。クロスオブジェクト呼び出しメソッドは次のとおりです: $window->connect_object("destroy", array("gtk","main_quit")) このようにして、「destroy」信号が送信されたときに gtk::main_quit() が呼び出されます。このようにして、$window オブジェクトのファイルが送信され、最終的にプログラムが実行されます。 接続メソッドの紹介の最後に、コールバック関数に渡すパラメーターに connect() と connect_object() を追加するカスタム メソッドについて説明します。例を参照: connect("clicked","who_are_you",$parameter); $button2 = &new GtkButton("Test 2"); //「clicked」信号を kill_the_button1 関数に接続し、パラメーター $button1 $button2 を追加します。 ->connect_object("clicked","kill_the_button1",$button1); function who_are_you($widget,$parameter){ echo $parameter; } function kill_the_button($button->destroy() } ?> 注意これら 2 つの関数には 2 つのパラメータがありますよね? 最初のパラメータはなぜ自動的に表示されるのでしょうか? コールバック関数のパラメータが異なるため、デフォルトの確実性が追加されるからです。が渡され、基本的にすべての信号は少なくともパラメータ a をコールバック関数に渡して、信号のオブジェクトを生成します。したがって、who_are_you の最初のパラメータは $button1 で、2 番目のパラメータは $parameter (新しいスーパーマン) です。 kill_the_button 関数は異なります~ connect_object() 関数は元のシグナルのコールバック関数のデフォルトパラメータを呼び出すため、kill_the_button は connect_object の最後に $button1 パラメータを追加するだけです。 このようにして、kill_the_button は $ のメソッドを呼び出すことができます。ここで $button1 の destroy メソッドが呼び出されるため、$button1 が破棄されます。 2.8 イベント イベントはシグナルの一種ですが、その用途と機能は非常に強力です。シグナルに関して言えば、シグナルのようなものはウィジェットに組み込まれているため、たとえば GtkWindow が「クリック」シグナルを持たない場合、GtkWindow がイベントシグナルを使用せずにクリックなどのシグナルを送信することは絶対に不可能です。 。イベントシグナルを使用するとどうなるでしょうか? イベントシグナルは任意のウィジェットに追加できるため、元々「クリック」シグナルを発する機能を持たないウィジェットであっても、add_events() を使用してクリックシグナルを追加することもできます。イベント信号はその後どのような反応をしますか?イベント信号には多くの情報が含まれています。たとえば、イベント信号「key-press-event」を使用すると、どのキーが押されたかも記録されるため、イベント信号のコールバック関数の形式は通常 2 つあります。デフォルトでは、最初のウィジェットは依然としてシグナルを送信するウィジェットであり、2 番目の $event はクラスであり、内部のプロパティとメソッドは送信されるイベントシグナルのタイプによって異なります。 「key-press-event」によって返される $event クラスに関しては、属性の 1 つは keyval であり、内容はユーザーがどのキーを押したかです。これは多くの場合、プログラマーにとって非常に役立つ情報です。したがって、最初は理解できなくても、イベントの重要性を無視することはできません。このセクションも非常に重要です。 3. PHP-GTK のインストール 3.1 Windows システムでのインストール まず、http://gtk.php.net/download.php から HP-GTK の Windows バイナリ ファイルをダウンロードします (この記事の執筆時点ではバージョン 0.5.1)。 次に、PHP-GTK 0.5.1 バイナリ ファイルの内容を見てみましょう。 php4 → php および php-gtk バイナリ ファイル winnt → デフォルトの php.ini ファイル winntsystem32 → 拡張機能 test で使用される gtk バイナリ → いくつかのテスト ファイル README。 txt → インストール マニュアル ファイルに移動して、インストールを開始します。 1. php4 の内容を php インストール ディレクトリ (C:php など) にコピーします。 2. winnt の内容を winnt フォルダにコピーします。 Windows NT または Windows 2000 では C:winnt、Window95、98、および XP では C:windows です。すでに php.ini がフォルダー内にある場合は、この操作を行う必要はありません。 3. winntsystem32 の内容を winntsystem32 フォルダーにコピーします。 Windows NT または Windows2000 では C:winntsystem32、Window95、98、および XP では C:windowssystem32 です。 4. テストの内容をスクリプトを実行する場所にコピーします (この手順は必要ありません)。 PHP-GTK プログラムの実行方法: PHP-GTK プログラムは、「スタート」-「実行」で次のようなコマンドを入力する (またはショートカットを作成する) ことで起動できます。 C:phpphp -q c:phptestgtk.php ##これは、HTTP ヘッダーを出力しないことを意味しますが、プログラムを閉じるまでこのウィンドウを使用し続けます。 C:phpphp -q -c php.ini c:gtk.php ## 上記と同じですが、指定された php.ini 設定を実行します。 C:phpphp C:phptestgtk.php ## は、HTTP ヘッダーが出力されることを意味しますが、このウィンドウはプログラムが閉じるまで使用されます。 C:phpphp_win C:phptestgtk.php ## は、ウィンドウが使用されないことを意味します。実行後は、php -qモードで別の実行プログラムが実行されますが、エラーメッセージなどの文字が出力されている限り実行は停止します。 3.2 UNIX システムでのインストール Debian ユーザーは、http://www.debian.org から PHP-GTK のバイナリ ファイルをダウンロードできます。システム要件には、次のパッケージがインストールされている必要があります: PHP 4.1.0 以降。すべてのヘッダー ファイルと開発スクリプトを含め、CGI バイナリ (コマンドライン) バージョンとしてコンパイルする必要があります。 PHP-GTK は GTK+ v1.2 をサポートしており、GTK+ バージョン 1.2.6 以降をインストールする必要があります。 GTK+ v2.0 はまだサポートされていないため、開発およびリリースされるまで待つ必要があります

www.bkjia.com本当http://www.bkjia.com/PHPjc/531984.html技術記事 1. PHP-GTK の概要 1.1 PHP-GTK PHP-GTK は、プログラマがクライアント上で実行される独立した GUI プログラムを作成できるようにする PHP の拡張モジュールです。この MOD はブラウザでの表示が許可されていません...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP対Python:違いを理解しますPHP対Python:違いを理解しますApr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHP:それは死にかけていますか、それとも単に適応していますか?PHP:それは死にかけていますか、それとも単に適応していますか?Apr 11, 2025 am 12:13 AM

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの未来:適応と革新PHPの未来:適応と革新Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?Apr 10, 2025 am 09:39 AM

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?Apr 10, 2025 am 09:38 AM

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。Apr 10, 2025 am 09:37 AM

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、ファイルを安全に処理する方法をどのように処理しますか?PHPは、ファイルを安全に処理する方法をどのように処理しますか?Apr 10, 2025 am 09:37 AM

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Apr 10, 2025 am 09:33 AM

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター