15 мая 2009 г.

Создание простого окна. Часть2.

Данная статья является продолжением первой части. Теперь я предлагаю поближе познакомиться с некоторыми методами класса GtkWindow(), которые управляют внешним видов окна. Все приводимые в статье строки кода необходимо расположить в скрипте из первой части в любом месте до строки Gtk::main().


  1. $window->set_size_request(400, 200);
    Данный метод устанавливает размеры окна по ширине и высоте в пикселях.

  2. $window->set_title('Заголовок окна');
    Метод set_title(), как не сложно догадаться, устанавливает заголовок окна.

  3. $window->set_position(Gtk::WIN_POS_CENTER);
    Метод set_position() устанавливает расположение окна при его появлении. В качестве параметра может принимать:

    • Gtk::WIN_POS_NONE - расположение окна устанавливается менеджером окон операционной системы

    • Gtk::WIN_POS_CENTER - окно появляется по центру экрана

    • Gtk::WIN_POS_MOUSE - окно появляется там, где в данный момент находится указатель мыши

    • Gtk::WIN_POS_CENTER_ALWAYS - окно появляется по ценрту экрана, при изменении размеров окна оно также перемещается в центр

    • Gtk::WIN_POS_CENTER_ON_PARENT


  4. $window->set_decorated(TRUE);
  5. Если данному методу передать FALSE, то окно появится без рамки (на которой расположены название окна и кнопки закрытия/сворачивания/разворачивания).
  6. $window->set_resizable(FALSE);
    Если методу set_resizable() передать FALSE, то у пользователя не будет возможности изменить размеры окна.

  7. $pixbuf = $window->render_icon(
    Gtk::STOCK_CDROM,
    Gtk::ICON_SIZE_DIALOG);
    $window->set_icon($pixbuf);
    Таким способом мы установили иконку окна из списка уже имеющихся в PHP-GTK. Первым параметром методу render_icon передаётся иконка, а вторым её размер. Для того, чтобы в качестве иконки окна установить свою картинку, необходимо делать так:
    $window->set_icon(GdkPixbuf::new_from_file('logo.png'));


6 комментариев:

Анонимный комментирует...

Супер, спасибо за статьи

Nick комментирует...

Было бы очень хорошо, если вы бы рассказали какие еще есть встроенные иконки.

Shecspi комментирует...

В статье в шестом пункте есть ссылка - http://gtk.php.net/manual/en/gtk.enum.stockitems.php. Здесь приведены все встроенные иконки и их обозначение.

Gene комментирует...

Спасибо, отличная статья!

Как оказалось, метода GdkPixbuf::new_from_stock() не существует, видимо именно для стоковых иконок и нужен метод render_icon() (по мануалу - Creates a GdkPixbuf from a given stock item), потому как из вашего примера видно, что в случае обычного файла метод этот не нужен - работает метод new_from_file().

Gene комментирует...

Кстати, на панели задач программа тоже видна с этой же иконкой, что и в заголовке, это удобно.

Shecspi комментирует...

Да, иконка одна везде: и в заголовке, и в панели задач, и в списке процессов.