Съдържание
Когато започнете с някой език за програмиране, първата програма, която ще напишете е така известната програма 'здравей свят'. За да не разочароваме всички и ние първата програмка в нашето ръководство ще бъде точно 'здравей свят'!
Чрез уроците ще имате възможност да научите и за възможностите на PHP. Уроците са направени така, че да получите ясна представа при програмиране под PHP-GTK, а също така и техниките за постигането му.
В този урок ще създадем простичък прозорец с техт "Здравей свят!".
Ще започнем с листинга на програмата, след което ще обясним всяка линия от програмата, за да можете да получите основна представа за една простичка програма написана на PHP-GTK.
Пример 2.1. Простичък скрипт Здравей свят
<?php if (!class_exists('gtk')) { die("Please load the php-gtk2 module in your php.ini\r\n"); } $wnd = new GtkWindow(); $wnd->set_title('Hello world'); $wnd->connect_simple('destroy', array('gtk', 'main_quit')); $lblHello = new GtkLabel("Just wanted to say\r\n'Hello world!'"); $wnd->add($lblHello); $wnd->show_all(); Gtk::main(); ?> |
Ако получите грешката Fatal error: Call to undefined function: connect_simple(), в този случай използвате PHP-Gtk1, а не PHP-Gtk2. Това е грешното ръководство.
Копирайте този код в програма за текстова обработка и го запазете като файл hello.phpw.Отворете конзола и го стартирайте с php hello.phpw. Нов прозорец със заглавие "Здравей свят" трябва да се покаже и в него да бъде изписано само текста "Просто исках да Ви кажа 'Здравей свят!'".
Пример 2.2. Проверка дали е зареден модулът PHP-GTK
if (!class_exists('gtk')) { die("Моля, заредете модулът php-gtk2 в php.ini\r\n"); } |
Тук провиряваме дали е налично PHP-GTK, като проверяваме дали е зареден класът gtk. При PHP 4 и PHP-GTK 1, трябваще да заредите модула на PHP-GTK чрез dl(). Този начин отпада в PHP 5 и не трябва да се използва при написване на нов код. Сега единственото, което трябва да направим е да отпечатме съобщение за грешка със съобщение да бъде заредено ръчно от потребителя.
Създаване на нов уйджет с прозорец е също тлокоз лесно, колкото е да създадете нов обект: Чрез променливата $wnd задаваме новият обект. Ако вече сте програмирали на PHP 4 и PHP-GTK 1, трябва да изпукнете амперсанта & преди new. Това беше необходимо при PHP 4, но при PHP 5 не е необходимо.
За по-лесно откриване на прозорците в лентата със задачи задаваме имена на прозорците: Просто обръщение към обектен метод.
Пример 2.5. За чисто изключване на програмата
$wnd->connect_simple('destroy', array('gtk', 'main_quit')); |
Това е първият интересен код, който ще разгледаме: Сигналът "destroy" се свързва със статичният метод Gtk::main_quit и той казва на GTK, да прекрати главният цикъл когато бъде затворен отпределен прозорец. (Главният цикъл ще бъде разгледан по-надолу в Ръководството)
Пример 2.6. Създаване на етикет за показване на текст
$lblHello = new GtkLabel("Just wanted to say\r\n'Hello world!'"); |
Както преди, създаваме нов уйджет. Този път обаче искаме да покажем кратко съобщение - за тази цел изполваме GtkLabel.
Сега казваме на прозореца да изобрази директно съдържанието на етикета.
До сега нищо от направеното няма да бъде показано. За да бъде показано трябва да извикате функцията show() . Това ще покаже прозореца, но няма да покаже етикета, затова трябва да извикаме show() и за етикета. Това не е много целесъобразно ако в прозореца имаме многократни уйджети от бутони, полета с отметки и др. Използването на функцията show_all() ще покаже прозореца с всички подчинени уйджети.
След като всичко е готово е нобходимо да запазим прозореца активен и да сме сигурни, че прозорецът отговаря на извършените действия от потребителя. При обикновен скрипт на PHP дейността му спира тук. На нас обаче ни е необходимо той да продължи. За тази цел е необходимо да се стартира главният цикъл на GTK. Работата му е да поддържа нашата програма работеща и да приема заявките от потребителя. Ако се появи някакво действие, главният цикъл го прехвърля към съответстващото обратно извикване (callbacks).
Сега след като направихте първата си проста програма на PHP-GTK 2 може би ще пожелаете и нещо по-сложничко. Можете да отидете и да прочетете Урокът за пакетиране.