Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
��� ������� �������� ��: English  Castellano  Deutsch  Francais  Nederlands  Russian  Turkce  

[Photo of the author]
����� Charles VIDAL

�� ������ :

�������� ����������������� ������ � ������. ����������� ��������� GNU � Open Source �� ����������� ������ ��������. ����� �� �������� ����� ��� ���� �� ���������.

����������:

������� Tk

logo de Tcl Tk

������:

���� ������� - ������������ ������������ �������������� Tcl : Tk. ����� ����� ������������������ �������� GUI � ��������� �����.



 

Tk ����������� �������������� Tcl :WISH

Tk ��� ���������� ��� ���������� ����� Tcl ������������ �������������, ������ �� ��������� ��� Tcl/Tk ( ������������ ��� Tikel/Tikey ).

��� ������������������ ����������� ��������������, ������������ ��� ����� ��. Tk ��������� ���������� � ������ ������������������ ������������ - ������ Tcl. �������� ������������� ���� ������ �������� �������� �������������. ������������� ����������� ���������� ��������� ����� ������.

 

Hello world !

���������������� �������� � �������� ���������� ���� ������ �� ������������ ������� :
pack [ label .l -text "Bonjour monde" ]

������� � gtk:
#include <gtk/gtk.h>
Int main( int   argc,
          char *argv[] )
{
   /* GtkWidget is the storage type for widgets */
    GtkWidget *window;
    GtkWidget *button;

    gtk_init(&&argc, &&argv);
   /* create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    button = gtk_button_new_with_label ("Bonjour Monde");
    gtk_container_add (GTK_CONTAINER (window), button);
    gtk_widget_show (button);

    /* and the window */
    gtk_widget_show (window);
    gtk_main ();

    return(0);
}
��� � Motif
/* COMPILE  cc xmhello.c -L/usr/X11R6/lib  -lXm -lXt -lX11 -lXmu -o xmhello */

#include <Xm/PushB.h>
#include <Xm/Form.h>

/* Widget */

    Widget      main_widget, pushb;

main(int argc, char **argv)
{
    Widget      form;
    Arg         args[1];
    int         ac = 0;
    XmString    label_str;

    main_widget = XtInitialize(argv[0], "test", NULL, 0, &&argc, argv);
    label_str = XmStringCreate("Bonjour Monde", XmSTRING_DEFAULT_CHARSET);
    XtSetArg(args[ac], XmNlabelString, label_str);
    ac++;
    pushb = XmCreatePushButton(main_widget, "hello", args, ac);
    XtManageChild(pushb);
    XtRealizeWidget(main_widget);
    XtMainLoop();
}
�� ����� ���� �������� ������ ���������� ��� ���������� ��� �������������� � �����������. � ���� ������ ����������� ���������� �� ������ ������, ���������� ����������. ������������ ������ ������, ��� ��� �� ����� ������� - ��������� ������ ��������� � ������� Tk �������� ������������� ������. �� ����� �������� ���� ���������� �������� �������� �� ���������.
���������� ��������� ����������, ���������� ������� ��� Tk Widget - �������� Qtk, ��� TkStep.
����������� � ��, ��� Tk ����� ��������� � ��������� �� ���������� ������ : ��� � ����������� ��������������� - ������ Tcl/Tk ������������������.  

�������� ������������ ������� Tk

�������������� �������� ����� ������� �������� ( widgets ) ��� ���������� GUI.

��� ��������� ��������� ��������� � ������� /usr/local/lib/tk8.0/demos/ � ��������� widget.

����� ��������� ���������. �� ���������� ����������, ��������� ���������� ������ � ����������, ����� ������� �������� ��������� : Tix, the widgets Incr Tcl , BWidget, ��� �������� �� ����� scriptics

 

��������� ������� � GUI

�� ���� ���� GUI ����� ���������������� ��� ����� "����" �� ������ ����������.
�������� ��������� ������� ��������� ��� ��������, �������� ������. ��������� � ����� Tcl/Tk ����������� ��������� ������� : ����� ����������� ��������� wish ���������� ����, � ������ . ( ����� ).  

�������� ����������� �������� : "hello world"

������� ����� Tcl ��� �������� ������������ ������� ����� ��������� ��������� :
name_object .(name_container.)*name_graphical_object [property value]
������ : label .mylabel -text "hello world"

���������� �������� : ������ ���������� � �������� �������, ������� ���������� �������, ����� �������� ��� ����������� ����������, ��� . ���������� "root window" � ��������� �������� (-text " hello Word "). �������, ��� ������ � ��������� ����������� ����� �������� ������ ������� :


������ ������ �������� ����� "Bonjour Monde in french :)"
����� ������� �������������� �������� : puts [label .mylabel -text "hello world"] ����� ������ ����� ������� ��������� ���������� ������ ������� :
.mylabel configure -text " This is the date [exec date ]"
��� ��������� ��������� ��� ��������� ������� ����������� ������� : ".ylabel configure" � ������������� ������ Wish.
����������� ���������� ����� ������ � ������ ������� ��������� ��� ���������.
 

��������������: ���������� ���������� ������ ���������.

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

�������, �� ���� ������ ������� ������, �� �� ������ ��� �� �����. ��� ����������� ������� ���������� �������������� ����������, ������� �� ��� �� ���������� - � ����� ���� ���� ������� ������.

���������� ��������� layouts:
  1. The packer
  2. The placer
  3. The grid
������� ���������� : the packer.

������������������� Hello Word

label .mylabel -text "hello world" pack .mylabel
��� ����� �������
pack [label .mylabel -text "hello world"]


������ ���������� ������ ������ : button .myboutton -text "hello world" -command "exit" pack .myboutton �������, ��� �� �������� ��������� "command", ����� ������� ����� ��������� ������� ����� tcl ��� ������� ������������� �� ������. � ����� ������� ��� ������� exit ��� ������ �� ���������.

 

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

���� Tcl/tk � ���������� �������� � �����������, ������� ������������� ��������� �� ���������. ���������� ��� ������������� �������� �������������� �������, ����� ������ ��������� �������. � ������ ������� - ��������� �������� ���������� ������������� ������ ��������� ��������� �������. ��� ������ ��� ���������� ����� �������� � ����������� � ������. ������

Checkbuttons � radiobuttons.

  1. Checkbutton ���������� ��������� - ���������� ��� ���.
    � ������ ��������� ����� ������� ����������, ����������� �������� 0 ( �� ��������� ) ��� 1 � ����������� �� ���������, � ������ ������� �� ���� ����� ���������� ��������� �������� ����� ������������ ���������� ������������� ��������.
    ������ : checkbutton $w.b1 -text "Wipers OK" -variable wipers -relief flat -onvalue "Ok" -offvalue "not Ok"
  2. Radiobutton ���������� ��������� ������ ���������.
    ��� �������� ���� ����� ������������� � ��������� ����� ������ ������ �� ���. ����� ������������� �������� - ���������� ��������� �� � ����� ����������, �������� ������� � ����� ��������������� ��������� �������.
    ������ :
    radiobutton .b1 -text "Premier " -variable size -value 1 radiobutton .b2 -text "Second " -variable size -value 2
  3. Entry
    ���� ������� - ������, ���� ������������ ����� ������� �����.
    ������ :
    entry .e -textvariable toto -width 40

 

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

������ �������� ���������� � �����. ������ ����������� � �� ����������� ����� ������ layout manager � ����� �����. ���������� ������������ layout managers :
  1. The packer: ������������� ������ :
    1. top
    2. bottom
    3. right
    4. left

    ������ :
    pack [ button .b1 -text top ] -side top
    pack [ button .b2 -text bottom ] -side bottom
    pack [ button .b3 -text right ] -side right
    pack [ button .b4 -text right ] -side left
    

  2. The placer: ���������������� ������� �� "x" � "y".

    ������ : place [ label .l -text "With Place"] -x 100 -y 100 .l configure -bg red

  3. The grid ������� ������������� � ����������� �����, ��������� �� ����� � ��������. ������ ����� ��� �������� ��� listboxes ��� multiple lines editboxes. ��������� : label .mainlbl2 -text "Label 2" -bd 2 -relief sunken grid .mainlbl2 -row 0 -column 1 -sticky news label .mainlbl1 -text "Label 1" -bd 2 -relief raised grid .mainlbl1 -row 0 -column 0 -sticky news label .mainlbl3 -text "Label 3" -bd 2 -relief solid grid .mainlbl3 -row 1 -column 0 label .mainlbl4 -text "Label 4" -bd 2 -relief groove grid .mainlbl4 -row 1 -column 1

 

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

������� winfo ������� ������ ��������� ��������.

 winfo exists name_object
��� :
winfo children .

 

�������

�������� -command ���������� �������� ����������� � ����� �� �������. �� ������ ������, ����� ���������� ����� ����� ��������� �������� ��� ����������� ��������� �������. ��� ���� ���� ������ ������ canvas.

bind name_of_widget name_of_event tcl_code.
 

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

�������� GUI ��� ��������� ����������� tar ( gz ) ������.
��������� ������� �� list � scrollbars.
���� ������� �������� ��������� ������� :
  1. ������� gui (proc makegui).
  2. �������� ��� ������� � tabgui.
  3. ������ �� ����������� ���������� - ���� �� ��� - ��������� ���������.
  4. ��������� ������� tar -tzvf ���_�����_tar.
  5. ������ ������ ���������� � list.
������ �� �������� "Control C" ��� ���������� ���������� :
bind all <Control-c> {destroy .}
����� ������� �������� ������ : ��������� ���� ���� ��� ��� �������� ����� tcl string first; ���� �� ��� ������� �������� - ������� ���� ������ �����; ������� ���� ��� ������ �������� ��� ������� ������, �������� ������ ����� ��� ������...
#!/bin/sh
# the next line restarts using wish \
exec wish8.0 "$0" "$@"

global tabgui

proc makegui { } {
global tabgui
#
# Creation of the  scrollbars for the list
# then the horizontal scrollbar is placed right, filling up horizontally the window
# and the vertical scrollbaris placed below, filling up vertically the window
#
set tabgui(scrollv) [scrollbar .scrollv -command ".list yview"]
pack $tabgui(scrollv) -side right -fill y
set tabgui(scrollh) [scrollbar .scrollh -command ".list xview" -orient horizontal ]
pack $tabgui(scrollh) -side bottom -fill x
#
# Creation of the list associating it to the scrollbar
#
#
set tabgui(list) [listbox .list  \
                -yscroll "$tabgui(scrollv) set" \
                -xscroll "$tabgui(scrollh) set" \
                -relief sunken -width 20 -height 20 \
        -setgrid yes ]
pack $tabgui(list) -side left -fill both -expand yes
wm minsize . 1 1
}

#
# Creation of the GUI
#
makegui

if $argc>0 {set tarfile [lindex $argv 0]} else {puts stderr "tar file missing" ; exit} 
set command "tar -tzvf $tarfile"
set tube [ open |$command r] 
 while {![eof $tube]} {
    set tarresult  [ gets $tube ] 
    $tabgui(list)  insert end $tarresult
}

bind all <Control-c> {destroy .}
 

������

 

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

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

Webpages maintained by the LinuxFocus Editor team
© Charles VIDAL, FDL
LinuxFocus.org

Click here to report a fault or send a comment to Linuxfocus
Translation information:
fr -> -- Charles VIDAL
fr -> en Charles VIDAL
en -> ru Kirill Poukhliakov

2000-10-31, generated by lfparser version 1.5