gpt4 book ai didi

ruby - QtRuby 发射不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:44 25 4
gpt4 key购买 nike

平台:

Darwin *-*s-MacBook-Pro.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64

ruby :

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin11.4.2] (installed by rvm)

Qt:

qt: stable 4.8.4 (bottled), HEAD

代码:

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

输出:

connecting signal and slot
sending signal

Qt.debug_level = Qt::DebugLevel::High 的输出

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

似乎 emit 没有做任何事情。我也试过重新安装qt和qtbindings,但问题仍然存在。而且我还在同一台机器上尝试了带有信号和插槽的 PyQt,它就像一个魅力。

有没有人对此有任何想法?是 ruby​​ qtbindings 的错误还是我做错了什么?

最佳答案

通常,需要先启动 Qt 的事件循环,然后才能可靠地传递任何信号。我在你的代码中没有看到这一点。更具体地说,我缺少的是:

app = Qt::Application.new(ARGV)
app.exec

关于ruby - QtRuby 发射不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15583114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com