我其中我與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