[LinuxFocus-icon]
<--  | �����  | �����  | ������  | �����

������� | ������ | ������ | ��� LF
��� �������� �������� �� ��������� ������: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  Polish  

Ozcan Gungor
����� Özcan Güngör
<ozcangungor(at)netscape.net>

�� ������:
��������� Linux � 1997.�������,�������� � ���������� ����. ��� �� ��������, ������� ��� ��������.

������� �� �������:
���� ����� <deshko_deshko(at)mail.ru>

����������:

 

���������������� ������������ ����������������� ���������� � �������������� GTK.

GTK

������:

� ���� ����� ������ �� ������, ��� ��������� ��������� ��� � ������� GTK.� �� ����, ��������� ��������� ��� �����.����� ������ ��� ������ ��� ���������� ��������� ������ � ����� ���������������� C:

  • ����������
  • �������
  • ���������


_________________ _________________ _________________

 

��� ����� GTK?

GTK(GIMP Toolkit) -- ��� ���������� ��� �������� ���.���������� �������� ��� GPL ���������.��������� ���� �����������, �� ������ ��������� ��������� ��� ��������� ��������� ����, ��� ������������ � ���������.

���������� ���������� GIMP toolkit (��������������), ��� ��� ���������� ���� ������� ��� ���������� GIMP(General Image Manipulation Program - �������� ��������� ��� ��������������� �������������).������ GTK, ��� ���:

GTK ������������� ��������-��������������� ��������� ��� ���������������� ����������.���������� �� C , ��� ���������� ���� ������� � ������� ��������� ������.

 

����������

��� ���� ����� �������������� GTK ��������� , ��� ����� �������� gcc �� ������������� GTK ��������� � �� �� ������������.��� ��� "�����" ������� gtk-config

# gtk-config --cflags --libs

����� ���� ������� ����� �� ���������(������� �� �������):

-I/opt/gnome/include/gtk-1.2 -I/opt/gnome/include/glib-1.2 -I/opt/gnome/lib/glib /include -I/usr/X11R6/include -L/opt/gnome/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -l Xext -lX11 -lm

���������� ���� ����������:

-l ����������: ����� ���������� � ���� lib����������.a � ���������������� ���������(path-�����).
-L ����: �������� ���� ��� ������ ���������.
-I ����:�������� ���� ��� ������ ������������ ������ ������������ ����������.

��� ���������� GTK ��������� ���������� hello.c ����� ������������ ��������� �������:

gcc -o hello hello.c `gtk-config --cflags --libs`

������ ����� ��������� -o --��� ��� ������������� ���������.

 

������ ���������

��������������, ��� � ����� ������� ���������� GTK.��������� ������ GTK ����� ���� ������� �� ftp.gtk.org.

������� ������� ���� ������ ���������.��� ������� ������ ���� �������� 200 �� 200 ��������.

#include <gtk/gtk.h>

int main( int   argc,
          char *argv[] )
{
    GtkWidget *window;

    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_widget_show  (window);

    gtk_main ();

    return(0);
}

GtkWidget - ��� ���������� ��� ����������� ��������� ����������� ����� ��� ����,������,�����...� ���� ������� ���� ���������� ��������� �������:

GtkWidget *window;

void gtk_init(int *argc,char ***argv) �������������� �������������� � ��������� ��������� ��������� ������.��� ������� ������ ���� ������������ ����� ����������� ���������.

GtkWidget *gtk_window_new(GtkWindowType windowtype) ������� ����� ����.���� ����� ����:

void gtk_widget_show(GtkWidget *widget) ������������ ��� ���� ,����� ��������� ��������� ��������� � ����.������ ������ �������������� ����� ����������� ���������� � ��������� ��� ����������.

void gtk_main(void) �������������� ���� � ��� ���������� � ��������� �� ������.������� ������ �������������� � ����� GTK ���������.

������� ���������� ��������� �������� ���� ����� ��� ���������,������,�������...

void gtk_window_set_title(GtkWindow *window,const gchar *title) ������������ ��� ��������� ��� ��������� ��������� ���� window.������ �������� ���� ������� ����� ��� GtkWindow.�� ����������window ����� ��� GtkWidget . ��� ���������� �� ����� ������������� �� ����.���� ���������������� ��������� � �������� , ����� �� �����������������. ��� ����� ������������ GTK_WINDOW(GtkWidget *widget). ������ �������� title ����� ��� gchar. ��� gchar ��������� � ���������� glib � �������� ����� �� ����� ��� � ��� char.

void gtk_window_set_default_size(GtkWindow *window, gint width, gint height) ������������� ������ window. .��� � gchar , gint ��������� � glib} � ������������ int.

�������

void gtk_window_set_position(GtkWindow *window, GtkWindowPosition position)

������������� ��������� window.position ����� ����:

��� ������:

#include <gtk/gtk.h>

int main( int   argc,
          char *argv[] )
{
    GtkWidget *window;

    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window),"Ýlk Program");
    gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(window),300,300);
    gtk_widget_show  (window);

    gtk_main ();

    return(0);
}
 

������� � �������

� ���, ��� ����� ������������ ���� � ����������, �������� �� ������ �������� �� ������ ����������.��� ����� ����������� GTK �������:

guint gtk_signal_connect_object(GtkObject *object,const gchar *name,GtkSignalFu nc func,GtkObject *slot_object);

object - ��� ��������, ������� ��������� ������.��������, ���� �� ������ ������ ���� �� ������ ������, �� object ����� �������. name-��� ��� ������� � ����� ���� ���������:

func - ��� ��� ������� , ������� ����� ������� ����� ���������� �������.��������:

#include <gtk/gtk.h>

void close( GtkWidget *widget,gpointer *data)
{
    gtk_main_quit();
}

int main( int   argc,char *argv[] )
{
    GtkWidget *window;

    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC (close), NULL);
    gtk_widget_show  (window);

    gtk_main ();

    return(0);
}

��������

gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (close), NULL)

������ �� �������� destroy, ������������ � �����.����� ���� �������� ������� , �� ���������� ������� close.������� close �������� gtk_main_quit() � ��������� ���������� ����������.

������ � �������� � �������� ����� ��������� �����...

 

������� ������

������� ������ ��� ������� ������������ ��� ���������� ���� ������ ��� �� �������.� GTK ���������� ���������� ��� ���� �������� ������:

  1. GtkWidget* gtk_button_new (void);
  2. GtkWidget* gtk_button_new_with_label (const gchar *label);

������ ������� ������� ������ ��� ����� (�� ��� ������ �� �������� ).������ ������� ������ � ������(�� ��� �������� ������ label .

��� �� ���������� ����� �������:

void gtk_container_add(GtkContainer *container,GtkWidget *widget)

��������� ��� �������,����� ������� ������ (� ����� �� ����� ��������� ) � ���� ( ��� ����� ����������). � ��������� ������� ����������� �������� ���� � ����������� ����������� - ������.� ������ ����������� �� ������ ������� �����.

������� , ��� ����� ����� � ������ ��� ���� �� ��� ������ .��� ���� ���� ����� �� ���� ������������ ������� gtk_signal_connect.� ������� ���� ������� ����� ������� ������ � ����� ������� ����������� ���������������� ������.��������:

#include <gtk/gtk.h>

void close( GtkWidget *widget,gpointer *data)
{
    gtk_main_quit();
}

void clicked(GtkWidget *widget,gpointer *data)
{
        g_print("Button Clicked\n");
}
int main( int   argc,char *argv[] )
{
    GtkWidget *window,*button;

    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC (close), NULL);

    button=gtk_button_new_with_label("Button");
    gtk_container_add(GTK_CONTAINER(window),button);
    gtk_signal_connect(GTK_OBJECT(button),"clicked",
                       GTK_SIGNAL_FUNC(clicked),NULL);
    gtk_widget_show(button);

    gtk_widget_show(window);

    gtk_main ();

    return(0);
}

 

�������� �������

� ������ ������� ���� �������� �������. �� ���� �������� �� ������ �������� ���� ����������� ��� ����������� ����������� ������ ���������.
 talkback page 

<--, ������� � ��������� �������� �������

Webpages maintained by the LinuxFocus Editor team
© Özcan Güngör, FDL
LinuxFocus.org
Translation information:
tr --> -- : Özcan Güngör <ozcangungor(at)netscape.net>
tr --> en: ÖzcanGüngör <ozcangungor(at)netscape.net>
en --> ru: ���� ����� <deshko_deshko(at)mail.ru>

2003-08-06, generated by lfparser version 2.42