ホームページ バックエンド開発 PHPチュートリアル PHP-GTK2 を使用して Win32 GUI プログラムを作成する_PHP チュートリアル

PHP-GTK2 を使用して Win32 GUI プログラムを作成する_PHP チュートリアル

Jul 13, 2016 pm 05:39 PM
gui php win32 する できる 埋め込む はい サーバ 使用 プログラム 終わり 脚本

    PHP通常是做为服务器端脚本执行,如果告诉你PHP可以编写普通的GUI程序,你应该很感兴趣.下面介绍的PHP-GTK就是PHP的GUI扩展.GTK是一个业界标准的图形库,具有良好的移植性.如果你用过linux的gnome桌面环境,对它应该不会陌生,Gnome就是在KDE遇到Qt许可证障碍后发展的自由软件,GTK则是其采用的图形库。

    PHP-GTK采用的是组件思想(可见组件思想几十年前就有了),为此不能不提到tcl/tk语言。

    Tcl/Tk 的发明人 John Ousterhout 教授在八十年代初,是伯克利大学的教授。在其教学过程中,他发现在集成电路 CAD 设计中,很多时间是花在编程建立测试环境上。并且,环境一旦发生了变化,就要重新修改代码以适应。这种费力而又低效的方法,迫使 Ousterhout 教授力图寻找一种新的编程语言,它即要有好的代码可重用性,又要简单易学,这样就促成了Tcl (Tool Command Language) 语言的产生。TCL经常被用于 快速原型开发,脚本编程,GUI和测试等方面。

    Tcl 最初的构想的是希望把编程按照基于组件的方法 (Component Approach),即与其为单个的应用程序编写成百上千行的程序代码,不如寻找一个种方法将程序分割成一个个小的, 具备一定“完整”功能的,可重复使用的组件。这些小的组件小到可以基本满足一些独立的应用程序的需求,其它部分可由这些小的组件功能基础上生成。不同的组件有不同的功能,用于不同的目的。并可为其它的应用程序所利用。当然, 这种语言还要有良好的扩展性, 以便用户为其增添新的功能模块。最后,需要用一种强的,灵活的“胶水”把这些组件“粘”合在一起, 使各个组件之间可互相“通信”,协同工作。程序设计有如拼图游戏一样,这种设计思想与后来的 Java 不谋而合。终于在1988 年的春天, 这种强大灵活的胶水 - Tcl 语言被发明出来了。

    按照 Ousterhout 教授的定义,Tcl 是一种可嵌入的命令脚本化语言 (Command Script Language)。“可嵌入”是指把很多应用有效,无缝地集成在一起。

    说起来也很类似于现在炒做的很热闹的.NET,.NET有一个IL,中间语言,你可以用合适的语言做组件,通过IL实现模块的衔接和重用。说白了,微软这个思想就是借鉴了十几年前的tcl/tk,只不过微软有钱可以做得更好而已。

    这种结构的先进性不言而喻,有好的代码可重用性,简单易学,有良好的扩展性,可重用,执行效率比单纯的脚本高,功能也更强,解释语言,代码能够动态的改变,平台无关。Win32, UNIX, Mac 上都可以跑,代码紧凑,易于维护调试简单等等。这种方式为后来很多脚本语言采用,如python,perl 等,php脚本的天性也非常适合做这种扩展,php-gtk只是其扩展的一种。

    PHP-GTK创始人Andrei Zmievski 回忆了 PHP-GTK 计划和创建的过程:

    “我总是对 GUI 编程有着浓厚的兴趣。我发现 Gtk+ 是一个非常好的工具包。目睹了 PyGtk 和 GTK-Perl 的实现,我决定尝试 PHP 是否也能够被做成 Gtk+ 的接口。2000年8月,我有了更多的业余时间,于是我开始试验。我参考了 PyGtk 的实现方法,因为它有着相当完全的实现和漂亮的面向对象的接口。James Henstridge,PyG 的作者,在最初的筹备阶段提供了极大的帮助。

    “手工写 Gtk+ 函数全部的接口几乎是不可能的事情,所以我把重点放在了代码生成上,就像 PyGtk 做的一样。代码生成器是一个PHP 程序,它可以读取包含 Gtk+ 类、常量和方法信息的一系列的 .defs 文件并生成与 PHP 相接口的 C 代码。无法自动生成的部分可以提交到 .overrides 文件。

    “代码生成器和基础结构的工作花了我一定的时间,因为我在 2000 年秋天这段时间里只能花很少的时间在 PHP-GTK 上。在我把 PHP-GTK 给 Frank Kromann 演示过后,他产生了浓厚的兴趣,并开始帮助我完成代码生成器和 Win32 的实现。当我们写了第一个 Hello World 程序并设法使之工作之时,我们的喜悦之情溢于言表。两个多月后,这个工程初见成效,并于 2001 年 3 月 1 日发布了内部版本。

    “感到 PHP-GTK 前景广阔,我便为它专门设置了邮件列表和 CVS 知识库。同时,gtk.php.net 网站也建立起来。”

簡単な例です。インストール パッケージのデモをさらにご覧ください。 php-gtk の公式 Web サイトは http://gtk.php.net で、クエリに関するオンラインマニュアルがあります。現在、php-gtk の最上位バージョンは PHP-GTK2 ですが、現在もさらに改良が続けられています。

http://gtk.php.net/download.php から完全な実行およびテスト ソフトウェア パッケージをダウンロードし、コマンド ラインから実行できます:

phpdemosxxx.php

付属のデモプログラムをテストできます。

初めてデモを見た人は驚かれると思います。PHP で本当に Win32 GUI デスクトップ プログラムを開発できることがわかりました。

以下は例です。mydemo.php という名前のファイルをデモ フォルダーに保存し、コマンドを実行します。

C:phpgtk2>php demosmydemo.php

小さなウィンドウが表示され、マウスでドラッグしてサイズを変更できます。ウィンドウが閉じ、DOS ウィンドウに「Hello World!」という文字列が出力されます。

関数破壊() 関数 Hello () {
Global $ Window;
Print "Hello World! ";
$window->destroy();
->connect("destroy", "destroy");

// ボタンを含む GtkButton を作成します"クリックしてください"

$button = &new GtkButton( "クリックMe ");
$button-> connect(" clicked", "hello");
//コンテナである GtkWindow に GtkButton を入れます
$window-> add($button);
//表示$window とそのすべての子ウィジェット
$window-> show_all();
// プログラムのメインループに入ります (プログラムの起動を意味します)
gtk::main();
?>

メッシュテストのコメント:

PHP でこれができるのは本当に感動的です!しかしため息をついた後、また変な気分になった。
まず第一に、Web 開発における PHP の人気は、デスクトップ開発における PHP の輝きを覆い隠しています - それは輝かしいものでさえありません。 Web 開発、特に Web サイト開発に関しては、PHP は長らく業界のリーダーであり続けてきましたが、その地位は常に 3 位か 4 位でした。現時点で、デスクトップ開発について話すと、「自分たちの仕事がきちんとできていない」と感じます。
実際のところ、PHP-GTK の PHP ブランチは非常にゆっくりと開発されています。2010 年 8 月の時点で、その最後の更新は 2 年半前です。資金の問題があるか、人材の問題があるか、あるいは事業の見通しがないかのいずれかです。つまり、このプロジェクトは、風が吹けば消えてしまうかのように、いつでも死産するでしょう。
デスクトップ開発の場合、一般的なものは VC++、Delphi、Winform (C#/VB.NET) で、Java はほとんど数えられず、PHP は関係ないようです。 Linux で GTK ライブラリを借用しているのであれば、Linux で開発したほうが良いのではないかと思います。なぜ Windows のウィンドウをドリルスルーする必要があるのでしょうか? PHP と Python の構文は少し奇妙ですが、VC++ に慣れている人には気に入るでしょうか。個人的な好みで言えば、私は C/C++、JAVA、その他の言語の利点を吸収しており、Webform と Winform のプログラムを同時に開発できるのが一番好きです。明るい未来を。



http://www.bkjia.com/PHPjc/486265.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/486265.html

技術記事

PHP は通常、サーバーサイド スクリプトとして実行されます。PHP で通常の GUI プログラムを作成できると言われれば、PHP の GUI 拡張である PHP に興味を持つはずです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles