Platformę:QtRuby emitują nie działa
Darwin * - * s-MacBook-Pro.local 11.4.2 Darwin Kernel wersja 11.4.2: Czw 23 sierpnia 16:25:48 PDT 2012; główny: xnu-1699.32.7 ~ 1/RELEASE_X86_64 x86_64
Ruby:
rubin 2.0.0p0 (24.02.2013 wersja 39474) [x86_64-darwin11.4.2] (zainstalowany przez RVM)
Qt:
qt: stabilny 4.8.4 (bOT tled), HEAD
Kod:
require 'Qt'
class Foo < Qt::Object
signals :my_signal #also tried 'my_signal()'
slots 'my_slot()'
def initialize(parent = nil)
super(parent)
puts "connecting signal and slot"
Qt::Object.connect(self, SIGNAL('my_signal()'), self, SLOT('my_slot()'))
# also tried => connect(self, SIGNAL('my_signal()'), self, SLOT('my_slot()'))
end
def emit_my_signal
puts "sending signal"
emit my_signal
end
def my_slot
puts "received message from signal"
end
end
o = Foo.new
o.emit_my_signal
Wyjście:
connecting signal and slot
sending signal
Wyjście z Qt.debug_level = Qt :: poziomdebugowania :: Wysoka
Munged method names:
QObject$
QObject?
QObject#
candidate list:
QObject* QObject::QObject(QObject*) (smoke: 0 index: 3804)
matching => smoke: 0 index: 3804
QObject* (u) score: 2
match => smoke: 0 index: 3804 score: 2 chosen: 3804
setCurrentMethod(smokeList index: 0, meth index: 3804)
connecting signal and slot
Searching for QObject#connect
Munged method names:
connect#$#$
candidate list:
static bool QObject::connect(const QObject*, const char*, const QObject*, const char*) (smoke: 0 index: 3850)
matching => smoke: 0 index: 3850
const QObject* (QObject) score: 3
const char* (s) score: 1
const QObject* (QObject) score: 3
const char* (s) score: 1
match => smoke: 0 index: 3850 score: 8 chosen: 3850
setCurrentMethod(smokeList index: 0, meth index: 3850)
sending signal
Wygląda na to, że emitent nic nie robi. Próbowałem również ponownie zainstalować qt i qtbindings, ale problem nadal istnieje. A także próbowałem PyQt z sygnałem i gniazdem na tej samej maszynie, działa jak urok.
Czy ktoś ma jakieś pomysły na ten temat? Czy to błąd rubbistycznego qtbindingu, czy po prostu zrobiłem coś nie tak?
Wydaje się, że błąd ruby ruby-2.0.0-p0, qtbindings nie działa dobrze w tej wersji. Próbowałem ruby-1.9.3-p392 na tej samej maszynie, to działa. – user2201409
działa dla mnie z qtbindings 4.8.5.2 i ruby 2.0.0p247 (2013-06-27 rewizja 41674) [i686-linux] –
Twój kod działa na Ubuntu 15.10 z qtbindings 4.8.6. – bogl