2010-10-22 3 views
0

J'ai mis en place un Qt gui en utilisant QtJambi et JRuby. Jusqu'à présent, les choses se sont bien passées. Je suis prêt à commencer à établir des connexions, cependant, beaucoup de signaux ne semblent pas être visibles de jruby. Par exemple, si j'imprime les méthodes de QPushButton, je ne vois aucune méthode appelée "cliquée" pour que je puisse établir une connexion.Configuration des connexions QtJambi à partir de JRuby

J'ai trouvé ce lien concernant QtJambi et Jython, qui peut être lié, mais je ne pense pas que ce soit réellement mon problème.

http://lists.trolltech.com/qt-jambi-interest/2007-03/thread00053-0.html

Comment puis-je faire ces signaux de mes objets Qt visible JRuby pour vous connecter à?

+0

Pouvez-vous montrer quelques exemples de code? –

Répondre

0

J'ai reçu une réponse de Vladimir Kirichenko de la liste de diffusion QtJambi, qui a éclairci les choses.

Fondamentalement, il faut implémenter la méthode method_missing, qui permet de voir les signaux lorsque j'ai appelé methods.

class com.trolltech.qt.gui::QWidget 
    def method_missing(sym) 
    if sym.id2name.start_with?("signal_") 
     name = sym.id2name[7, sym.id2name.length] 
     f = self.getClass.fields.select {|f| f.name == name }.first 
     f.get(self) 
    else 
     nil 
    end 
    end 
end 

Je peux faire quelque chose comme

$object_action.signal_changed.connect(...) 
Questions connexes