Bonjour,
Je développe une petite appli de chat en ruby en utilisant Glade et GTK pour l'interface.
Avec un tutorial, j'ai réussi à faire fonctionner quelque chose de mon application. J'envoie un message à un serveur (utilisation de DRB/rinda etc...). Un élément de mon programme doit toutes les 1 secondes lire un tuplespace sur le serveur. Pour l'instant, j'ai fait un bouton qui appelle une fonction qui lit ce tuplespace. Moi j'aimerais que l'appel à cette fonction se fasse tout seul.
J'ai bien crée une boucle du genre :
While 1
check()
end
mais ça ne fonctionne pas. Voici le code de mon programme :
peux-t-on dans Glade spécifier un signal qui permettrait à l'appli d'appeler check() automatiquement toutes les x secondes (sleep(1))? Ou dois-je mettre une boucle quelque part?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 class MonAppli def initialize(file, root,ts) @main_glade_xml = GladeXML.new(file, root) {|handler| method(handler)} @ts=ts end def on_send_clicked mess = @main_glade_xml["message"].text #@main_glade_xml["Chatwindow"].text = mess @ts.write [:message, mess] sleep(0.5) messlu = @ts.read([:message, nil])[1] @main_glade_xml["Chatwindow"].text = messlu end def on_reload_ok_pressed check() end def check messlu = @ts.take([:message, nil])[1] @main_glade_xml["Chatwindow"].text = messlu end end DRb.start_service tuple_space = Rinda::RingFinger.primary Gtk.init MonAppli.new("rubyIM.glade",nil,tuple_space) Gtk.main DRb.thread.join
PS: Je suis un très très grand débutant en Ruby et je n'y connais presque rien sur GTK (tout fait avec des tutos).
Merci d'avance...![]()
Partager