Настройка соединений QtJambi из JRuby - PullRequest
0 голосов
/ 23 октября 2010

Я настраивал графический интерфейс Qt, используя QtJambi и JRuby.Пока все прошло хорошо.Я готов приступить к настройке соединений, однако многие сигналы не видны с jruby.Например, если я распечатываю методы QPushButton, я не вижу ни одного метода с именем «clicked», из которого я могу установить соединение.

Я нашел эту ссылку относительно QtJambi и Jython, которая может быть связана, но я не думаю, что это на самом деле моя проблема.

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

Как я могу сделать эти сигналы моих объектов Qt видимыми для JRuby для подключения?

1 Ответ

0 голосов
/ 31 октября 2010

Я получил ответ от Владимира Кириченко из списка рассылки QtJambi, в котором все прояснилось.

По сути, необходимо реализовать метод method_missing, который позволяет видеть сигналы при вызове 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

Тогда я могу сделать что-то вроде

$object_action.signal_changed.connect(...)
...