我其中我与QSignalMapper多个信号连接从对象到一个时隙中主程序的程序:Qt的槽没有被调用
class A()
{
private:
QSignalMapper * signalMapperRead_;
std::vector<Service*> services_;
public:
void initConnection()
{
signalMapperRead_ = new QSignalMapper();
connect(signalMapperRead_, SIGNAL(mapped(int)), this, SLOT(readyToSendToService(int)));
for (size_t i = 0 ; i < services_.size() ; ++i)
{
connect(services_.at(i), SIGNAL(readyToSendToServer()), signalMapperRead_, SLOT(map()));
signalMapperRead_->setMapping(services_.at(i), (int)i);
}
}
int run()
{
initConnection();
for(;;)
{
//do stuff;
}
}
};
int main()
{
QApplication app(argc, argv);
A * a = new A();
a->run();
return app.exec
}
然后,由于程序是一种服务器i的使他环路,并等待新的客户端,...
但插槽永远不会被调用。我在想,也许是因为程序总是在循环中,从不检查信号是否已经发出。
能否请你帮我
可能会一步一步调试有一定的帮助? – gongzhitaao 2013-03-23 16:51:29
执行是否离开'run()'? – cmannett85 2013-03-23 16:59:35
在程序结束时,除了没有。 – lpostula 2013-03-23 17:00:11