[ruby-gnome2-doc-cvs] [Hiki] create - tut-gtk2-bonjourmonde-details

Zurück zum Archiv-Index

ruby-****@sourc***** ruby-****@sourc*****
2003年 8月 17日 (日) 05:30:25 JST


-------------------------
REMOTE_ADDR = 217.117.37.226
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/fr?tut-gtk2-bonjourmonde-details
-------------------------
= Ruby/GTK2 Bonjour Monde (comment

Maintenant que nous venons de voir la th駮rie des signaux et des 騅駭ements, nous sommes enfin pr黎s regarder en d騁ail le programme "Bonjour Monde".

Premi鑽ement, il initialise Ruby/GTK2. Ce code est requis pour tous les programmes Ruby/GTK2.

  #!/usr/bin/env ruby
  =begin
    helloworld.rb - Ruby/GTK first sample script.

    Copyright (c) 2002,2003 Ruby-GNOME2 Project Team
    This program is licenced under the same licence as Ruby-GNOME2.

    $Id: helloworld.rb,v 1.4 2003/02/01 16:46:22 mutoh Exp $
  =end

  require 'gtk2'
  Gtk.init

Ici nous cr駮ns un bouton "Bonjour Monde". Gtk::Button.new cr馥 un nouveau bouton GTK et ajuste son 騁iquette avec la cha〓e de caract鑽es que nous lui donnons. A ce moment, le bouton ne fait pas encore partie d'une fen黎re GTK, et il n'est pas encore visible l'馗ran.

  button = Gtk::Button.new("Bonjour Monde")

Le code suivant affichera l'馗ran le message "Bonjour Monde" chaque fois que le bouton est actionn

Ce comportement est produit en connectant un bloc de code qui affiche notre message au signal "clicked" du bouton.

  button.signal_connect("clicked") {
    puts "Bonjour Monde"
  }

Maintenant il est temps de cr馥r la fen黎re. Comme le bouton, elle n'est pas encore visible l'馗ran.

  window = Gtk::Window.new

Nous d馗idons ici de connecter plusieurs gestionnaire de signaux sur notre fen黎re:

* "delete_event" sera envoylorsque la fen黎re sera tu馥 par le gestionnaire de fen黎re((-En anglais, ((*window manager*)).-)) (en g駭駻al, quand l'utilisateur la fermera manuellement). Notez que nous retournons une valeur false dans le bloc de code; 軋 signifie que le traitement de l'騅駭ement n'est pas encore termin GTK enverra alors un autre signal, "destroy".
* "destroy" sera 駑it juste apr鑚 "delete_event". Dans ce bloc de code, nous fermons l'application en appelant Gtk.main_quit.

Deux messages seront affich駸 lorsque l'utilisateur fermera la fen黎re:

(1) "Ev駭ement 'delete' produit."
(2) "Ev駭ement 'destroy' produit."

  window.signal_connect("delete_event") {
    puts "Ev駭ement 'delete' produit."
    #true
    false
  }

  window.signal_connect("destroy") {
    puts "Ev駭ement 'destroy' produit."
    Gtk.main_quit
  }

Ici nous ajustons la largeur de la bordure de 10 pixels. Qu'est-ce que cela signifie?

Les fen黎res GTK sont en fait des conteneurs. Un conteneur est un composant qui peut h饕erger un ou plusieurs autres composants. Notre fen黎re affichera ici une bordure de 10 pixels autour du composant h饕erg

  window.border_width = 10

C'est le moment d'emballer le bouton dans la fen黎re.

  window.add(button)

La prochaine 騁ape consiste afficher notre travail l'馗ran. Nous avons besoin d'afficher deux composants: le bouton et la fen黎re.

Nous aurions pu 馗rire ceci:

  button.show
  window.show

Mais comme le bouton est ajoutdans la fen黎re, nous pouvons alors appeler Gtk::Widget#show_all sur cette derni鑽e. Cette m騁hode appelera Gtk::Widget#show sur la fen黎re et sur chaque composant interne (ici il n'y en a qu'un seul: le bouton).

  window.show_all

Finalement, il ne reste plus qu'entrer dans la boucle principale, en appelant Gtk.main. Le programme va ce moment dormir jursqu'ce qu'un 騅駭ement se produira. Notez que l'appel Gtk.main ne retournera jamais. Le code 馗rit apr鑚 cet appel ne se produira donc jamais non plus.

Mais l'utilisateur sera toujours capable de fermer le programme, parce que nous appelons Gtk.main_quit lors de la r馗eption du signal "destroy". 

  Gtk.main





ruby-gnome2-cvs メーリングリストの案内
Zurück zum Archiv-Index