我想一些功能连接为无槽类,我可以这样做:连接没有对象
void update() { }
int main()
{
QTimer timer = ...;
QObject::connect(timer, SIGNAL(timeout()), SLOT(update()));
return 0;
}
编译器说,如果没有对象这是不可能的。
我想一些功能连接为无槽类,我可以这样做:连接没有对象
void update() { }
int main()
{
QTimer timer = ...;
QObject::connect(timer, SIGNAL(timeout()), SLOT(update()));
return 0;
}
编译器说,如果没有对象这是不可能的。
AFAIK,你只能信号连接到插槽,插槽只能存在作为Q_OBJECT的成员函数。
虽然很多人集中在模板与Qt的信号和boost ::信号或gtkmm的信号之间的差异MOC,这是我最终更关心的差异。 Qt的信号不如表达,并且导致比我想要的更多的依赖。
我仍然使用Qt,但是这只是因为gtkmm的可访问性是完全在Win32系统缺失。
你能做什么,当然是让QTimer的子类,连接到其自己的超时信号与生成,你可以连接到外部函数一个boost ::信号的插槽。尽管如此,请注意Qt中使用boost信号时的问题,但我只是使用signals2来完全避免它,并且我获得了线程安全性。
你需要的是Qt的认识的插槽。要做到这一点,你必须开设一门课。所以我会说不可能的。
您可以使用Boost的信号插槽机制。 Boost Signal Slot
如果您使用的是Qt 4.1或更高版本都可以同时按此处的说明使用Boost signals & slots with Qt
或许值得指出的是,此功能使用Qt 5引入http://developer.qt.nokia .COM /维基/ New_Signal_Slot_Syntax – leinir 2012-02-27 07:04:37