Forum und email

Здравей свят (прост пример)

Когато започнете с някой език за програмиране, първата програма, която ще напишете е така известната програма 'здравей свят'. За да не разочароваме всички и ние първата програмка в нашето ръководство ще бъде точно 'здравей свят'!

Чрез уроците ще имате възможност да научите и за възможностите на 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 и не трябва да се използва при написване на нов код. Сега единственото, което трябва да направим е да отпечатме съобщение за грешка със съобщение да бъде заредено ръчно от потребителя.

Пример 2.3. Създаване на прозорец

$wnd = new GtkWindow();

Създаване на нов уйджет с прозорец е също тлокоз лесно, колкото е да създадете нов обект: Чрез променливата $wnd задаваме новият обект. Ако вече сте програмирали на PHP 4 и PHP-GTK 1, трябва да изпукнете амперсанта & преди new. Това беше необходимо при PHP 4, но при PHP 5 не е необходимо.

Пример 2.4. Задаване на заглавие на прозореца

$wnd->set_title('Hello world');

За по-лесно откриване на прозорците в лентата със задачи задаваме имена на прозорците: Просто обръщение към обектен метод.

Пример 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.

Пример 2.7. Добавяне на етикет към прозорец

$wnd->add($lblHello);

Сега казваме на прозореца да изобрази директно съдържанието на етикета.

Пример 2.8. Да направим прозореца да се вижда

$wnd->show_all();

До сега нищо от направеното няма да бъде показано. За да бъде показано трябва да извикате функцията show() . Това ще покаже прозореца, но няма да покаже етикета, затова трябва да извикаме show() и за етикета. Това не е много целесъобразно ако в прозореца имаме многократни уйджети от бутони, полета с отметки и др. Използването на функцията show_all() ще покаже прозореца с всички подчинени уйджети.

Пример 2.9. Стартиране на главния цикъл

Gtk::main();

След като всичко е готово е нобходимо да запазим прозореца активен и да сме сигурни, че прозорецът отговаря на извършените действия от потребителя. При обикновен скрипт на PHP дейността му спира тук. На нас обаче ни е необходимо той да продължи. За тази цел е необходимо да се стартира главният цикъл на GTK. Работата му е да поддържа нашата програма работеща и да приема заявките от потребителя. Ако се появи някакво действие, главният цикъл го прехвърля към съответстващото обратно извикване (callbacks).

По-задълбочено четене

Сега след като направихте първата си проста програма на PHP-GTK 2 може би ще пожелаете и нещо по-сложничко. Можете да отидете и да прочетете Урокът за пакетиране.