$window = &new GtkWlndow(); $window->set_border_width(10); $window->connect('destroy','quit_routine' );
Следующие несколько строк относятся к графическому элементу кнопки. В PHP-GTK, если передать строковый параметр в экземпляр GtkButton во время его создания, то созданная кнопка будет содержать метку с указанным текстом. Если опустить этот параметр, то дочерний графический элемент GtkLabel не будет создан.
При соединении сигнала переменная $buttor передается в качестве первого параметра по умолчанию функции обратного вызова hello(), а пользовательский параметр $window - в качестве второго параметра функции обратного вызова.
Затем мы вызываем метод add(), унаследованный у класса GtkContainer, чтобы добавить кнопку в окно:
Sbutton = &new GtkButton( "Hello World! '); $button->connect('clicked', 'hello', $window); $window->add($button);
Следующий блок создает всплывающую подсказку, появляющуюся, когда курсор мыши оказывается над кнопкой. Здесь снова первая строка занимается созданием объекта. Затем мы вызываем метод set_tip() только что созданного экземпляра GtkTooltips, который связывает подсказку с кнопкой и устанавливает текст. Третий параметр служит для задания строки, идентифицирующей подсказку, но поскольку в этом приложении она у нас одна, то его можно оставить равным null. Наконец, активизируем подсказку:
$tooltip = knew GtkTooltips();
$tooltip->set_tip($button, 'Prints "Hello World!" and vanishes', null); $tooltip->enable() ;
Здесь мы вызываем из окна метод GtkWidget show_all(). Он показывает вызывающий объект и его дочерние элементы, если они есть:
$window->show_all();
Наконец, запускаем главный цикл:
gtk;:main();
При запуске сценария отображается маленький аккуратный интерфейс, приведенный ниже (рис. 20.1):
Клиент приложения библиотеки
Помимо веб-интерфейса к приложению библиотеки, разработанному в главах 17 и 18, создадим с помощью PHP-GTK простой интерфейс клиента. Он предоставит нам аналогичную функциональность:
• Предоставить пользователю экран для ввода имени пользователя и пароля для входа в приложение
♦ Вывести пользователю форму для ввода описания книги. Детали описания нужны для поиска в базе данных и отображения результатов в виде списка
Если вы еще не установили одну из баз данных, о которых шла речь выше, наверное, это надо сделать сейчас.
Часто полезно разбить приложение PHP-GTK на функции, которые загружают окна или выполняют другие специфические задачи. Благодаря этому программа состоит из нескольких отдельных блоков, а не из одного длинного участка кода.