The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Perl" / Оглавление документа

Часть 51. Фиксированный объект

Иерархия наследования

Object
   +--- Widget
         +--- Container
               +--- Fixed
         

Фиксированный объект позволяет Вам помещать виджеты в пределах созданной панели. Положение виджетов также может быть изменено динамически.

Есть только три функции связанные с неподвижным виджетом:

$fixed = new Gtk::Fixed();

$fixed->put( $widget, $x, $y );

$fixed->move( $widget, $x, $y );

Функция new() позволяет вам создать новый фиксированный объект.

Функция put() помещает $widget в "неподвижное" положение, определяемое координатами $x и $y.

Функция move() двигает виджет на новую позицию.

51.1. Пример

Этот пример иллюстрирует использование объекта фиксированного положения.

исходник (wake up, Neo...)

      
#!/usr/bin/perl -w

use 
Gtk
;
use 
strict
;

set_locale Gtk;
init Gtk;


my
 $false = 0;

my
 $true = 1;


my
 $x = 50;

my
 $y = 50;


my
 $window;

my
 $fixed;

my
 $button;

# Создаем новую панель
$window = new Gtk::Window( "toplevel" );
$window->set_title( "Фиксированный объект");
$window->signal_connect( "destroy",

sub
 { Gtk->
exit
( 0 ); } );

# Ширина границы панели
$window->border_width( 10 );

# Создаем фиксированный объект
$fixed = new Gtk::Fixed();
$window->add( $fixed );
$fixed->show();


for
 
my
 $i ( 1..3 )
{
   # Создаем кнопку с надписью "Поехали!! "
   $button = new Gtk::Button( "Поехали!! " );

   # когда кнопка испустит сигнал нажато
   # будет вызвана функция move_button() возвращающая координаты новой кнопки
   # в соответствии с параметрами фиксированного объекта.
   $button->signal_connect( "clicked", \&move_button, $fixed );

   # добавляем кнопку в панель, где определен фиксированный объект.
   $fixed->put( $button, $i * 50, $i * 50 );

   # Показываем результат.
   $button->show();
}

# Показываем всю панель
$window->show();

main Gtk;

exit
( 0 );



### подпрограммы

# Вызов этой функции передвигает кнопку на новое место
# внутри фиксированного объекта.

sub
 
move_button

{
   
my
 ( $widget, $fixed ) = @_;

   $x = ( $x + 30 ) % 300;
   $y = ( $y + 50 ) % 300;
   $fixed->move( $widget, $x, $y );
}


# конец примера
      
   

Пример работы программы




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру