Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Андрей Уваров
Наверное, не стоит говорить о том, какое большое распространение получил язык PHP в настоящее время. Преимущественно он используется в веб-программировании (собственно, как и задумывалось его создателем). Надёжно укрепившись на серверах, теперь не спеша переходит и на десктопы. Об этом свидетельствуют как минимум две вещи: появление поддержки ncurses и проект PHP-GTK, о чём и поговорим сегодня.
Данная статья ориентирована на достаточно широкий круг читателей, так как в ней не рассматриваются какие-либо сложные аспекты. И может оказаться полезной как для людей, желающих использовать PHP для написания приложений с графическим интерфейсом пользователя, выполняющихся на клиентской стороне, так и для тех, кто просто желает начать изучение GTK.
PHP-GTK представляет собой расширение (модуль),
позволяющее создавать приложения с оконным графическим интерфейсом. Стоит
заметить, что данное расширение является кроссплатформенным, речь идёт не
только о *nix-подобных системах, но и Win. Всю документацию, исходные коды или
же откомпилированное расширение вы найдёте на сайте проекта –
Что такое GTK?
Итак, что же такое GTK? На самом деле в данном случае правильней было бы говорить о GTK+. GTK представляет собой набор библиотек, используемых для создания оконного графического интерфейса пользователя. Основным отличием GTK+ от GTK является объектная ориентированность и наличие механизма сигналов. Аббревиатура GTK означает – GIMP Toolkit, так как изначально разрабатывалась для GIMP (в рамках одноименного проекта).
GTK+ основывается на двух основных понятиях: виджет и сигнал.
Виджетом называется любой компонент графического интерфейса, будь то кнопка, поле ввода или окно. Все виджеты наследуются от абстрактного класса GtkWidget. Виджеты, которые могут содержать другие виджеты, называются контейнерами. Предком контейнеров является Gtk Container (сам же GtkContainer наследуется от GtkWidget).
Сигналами называются сообщения, создаваемые виджетами. Сигналы используются для того, чтобы реагировать на действия пользователя. Например, при появлении курсора над кнопкой – экземпляром класса GtkButton, генерируется сигнал «enter», а при нажатии – сигнал «clicked». Сигналы наследуются. Для обработки сигналов используются callback-фукции. Не стоит путать сигналы с событиями. Сигналы существуют в рамках GTK. А события являются отражением механизма событий в оконной системе.
Итак, несколько «оглядевшись», можно приступить и к примерам.
Напишем простейшее приложение.
<?php
if( !extension_loaded('gtk')) {
dl( 'php_gtk.' . PHP_SHLIB_SUFFIX);
}
$window = &new GtkWindow();
$window->show();
gtk::main();
?>
Разберём нашу программу «по косточкам».
Осуществляем проверку, загружено ли уже расширение, если нет, то загружаем его.
if( !extension_loaded('gtk')) {
dl( 'php_gtk.' . PHP_SHLIB_SUFFIX);
}
Создаём экземпляр класса GtkWindow – окно. И осуществляем его отображение вызовом метода show(). Если размер окна не устанавливается в программе, как в нашем случае, то используется размер по умолчанию – 200х200. То же касается и заголовка окна, по умолчанию это имя скрипта.