The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

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

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

Object
   +--- Widget
         +--- Editable
               +--- Entry

Виджеты ввода позволяют напечатать и показать текст в одну строку. The text
may be set with function calls that allow new text to replace, prepend or
append the current contents of the Entry widget. 

Две функции для создания текствых полей ввода:

$entry = new Gtk::Entry(); 

$entry = new Gtk::Entry( $max_length ); 

Первая функция создает новый виджет ввода, вторая функция делает то-же
самое, за исключением того, что ограничивает число символов, вводиммых
пользователем до значения, передаваемого аргуметом $max_length.

Несколько функций для манипуляций над текстом, находящимся в виджете:

$entry-> set_text ($text); 

$entry-> append_text ($text); 

$entry-> prepend_text ($text); 

Функция set_text() устанавливает содержимое виджета, меняя его на текущее
содержимое. append_text() и prepend_text() добавляют текст к содержимому
виджета.

Для скрытия вводимого текста(в случае ввода пароля) можно использовать функцию

$entry-> set_visibility ($visible); 

Для контроля того, что делте с виджетом пользователь, нужно отлавливать
соответствующие сигналы(см. документацию).

Пример использования виджета. позволяющего вводить текст:

#!/usr/bin/perl -w

use Gtk;
use strict;

set_locale Gtk;
init Gtk;

my $false = 0;
my $true = 1;

my $window;
my $vbox;
my $hbox;
my $entry;
my $button;
my $check;


# Создаем окно
$window = new Gtk::Window( "toplevel" );
$window->set_usize( 200, 100 );
$window->set_title( "GTK Entry" );
$window->signal_connect( "delete_event", sub { Gtk->exit( 0 ); } );

$vbox = new Gtk::VBox( $false, 0 );
$window->add( $vbox );
$vbox->show();

# создаем поле ввода
$entry = new Gtk::Entry( 50 );
$entry->signal_connect( "activate", \&enter_callback, $entry );
$entry->set_text( "Hello" );
$entry->append_text( "World" );
$entry->select_region( 0, length( $entry->get_text() ) );
$vbox->pack_start( $entry, $true, $true, 0 );
$entry->show();

$hbox = new Gtk::HBox( $false, 0 );
$vbox->add( $hbox );
$hbox->show();

# создаем чекбокс, который определяет, будет ли поле ввод редактируемым
$check = new Gtk::CheckButton( "Editable" );
$hbox->pack_start( $check, $true, $true, 0 );
$check->signal_connect( "toggled", \&entry_toggle_editable, $entry );
$check->set_active( $true );
$check->show();

# создаем чекбокс, который определяет, будет ли введенный текст видимым
$check = new Gtk::CheckButton( "Visible" );
$hbox->pack_start( $check, $true, $true, 0 );
$check->signal_connect( "toggled", \&entry_toggle_visibility, $entry );
$check->set_active( $true );
$check->show();

# создаем кнопку выхода
$button = new Gtk::Button( "Close" );
$button->signal_connect( "clicked", sub { Gtk->exit( 0 ); } );
$vbox->pack_start( $button, $true, $true, 0 );
$button->can_default( $true );
$button->grab_default();
$button->show();

$window->show();

main Gtk;
exit( 0 );

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


# Callback that is called when the enter key is pressed and the Entry
# widget has the focus.  It prints out the text in the entry widget.

sub enter_callback
{
   my ( $widget, $entry ) = @_;

   my $entry_text = $entry->get_text();
   print( "Entry contents: $entry_text\n" );
}


# Callback to toggle the editable property of the entry widget.

sub entry_toggle_editable
{
   my ( $checkbutton, $entry ) = @_;

   $entry->set_editable( $checkbutton->active );
}


# Callback to toggle the visible property of the entry widget.

sub entry_toggle_visibility
{
   my ( $checkbutton, $entry ) = @_;

   $entry->set_visibility( $checkbutton->active );
}

  




ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList