Naver Perl Community & Study Cafe


2008.10.07 21:48

Chapter 4. Getting Started


지금부터 GTK2-perl을 소개를 시작하겠다.

단순한 프로그램을 실행해보도록 하자.

이 프로그램은 종료버튼을 제외하고 아무런 기능이 없는 200 x 200 픽셀의 윈도우창 하나를 만든다.




1
2
3
4
5
6
7
8
9
10
use Gtk2;

Gtk2->init;

$window = Gtk2::Window->new('toplevel');
$window->show;

Gtk2->main;

0;

위의 프로그램을 실행할 수 있을 것이다.

모든 프로그램은 당연하게 GTK2 모듈을 사용한다.

Gtk2->init

모든 GTK 어플리케이션을 부른 뒤 init 메서드를 호출 할 것이다.

이 설정은 기본적인 비주얼과 색상등을 우리에게 제공한다.

이 메서드는 라이브러리를 사용하기 위해 기본적인 핸들을 초기화를 해주며 

커맨드라인에서 응용프로그램으로 넘어가는  인자값을 찾아 체크해준다.  -> 이 말이 무슨말인지 모르겠음

  • --gtk-module
  • --g-fatal-warnings
  • --gtk-debug
  • --gtk-no-debug
  • --gdk-debug
  • --gdk-no-debug
  • --display
  • --sync
  • --name
  • --class

이 매개변수 리스트들은 어플리케이션에 문법적으로 맞지않고 무시되어 제거된다.

그래서 init 메소드는 Gtk2모듈을 로드할 때 무조건적으로 이와 같이  'init' 를 인자값으로 넣어 사용한다.

Gtk2 '-init';

다음 두줄은 윈도우를 만들고 보여주는 코드이다.

$window = Gtk2::Window->new('toplevel');
$window->show;

toplevel 우리가 원하는 윈도우를 꾸미거나 배치를 관리해주는 특정한 매개변수 이다.

0 x 0 사이즈의 윈도우를 만들어 주고 

윈도우 사이즈를 200 X 200의 으로 세팅해주며 이것을 마음대로 조작할 수 있다.

우리는 위젯속성을 정하고 그것을 표기 할 줄 알아야 Gtk 를 사용 할 수 있다. 

마지막 라인은 Gtk 메인 프로세스에 루프를 돌려주는 코드이다.


Gtk2->main;

메인은 GTK 어프리케이션을 모두 불러낸다.

그리고 컨트롤이 이 포인트에 도달하면 GTK는 x 이벤트(아무 버튼 또는 키 등)를 기다린다.

or gile IO notifications to occur. In our simple example, however, events are ignored.


1. Hello World in GTK2-Perl


지금부터 간단한 버튼이 있는 프로그램을 만들어보자. 고전적인 Hello world 를 출력하고 있다..






use Glib qw/TRUE FALSE/;
use Gtk2 '-init';
sub hello
{
	my ($widget, $window) = @_;
	print "Hello, World\n";
	$window->destroy;
}
sub delete_event
{
	print "delete event occurred\n";
	return TRUE;
}
$window = Gtk2::Window->new('toplevel');
$window->signal_connect(delete_event => \&delete_event);
$window->signal_connect(destroy => sub { Gtk2->main_quit; });
$window->set_border_width(10);
$button = Gtk2::Button->new("Hello World");
$button->signal_connect(clicked => \&hello, $window);
$window->add($button);
$button->show;
$window->show;
Gtk2->main;
0;


이 코드 번역은 다음 시간에...

신고
Trackback 0 Comment 3