【发布时间】:2019-07-23 08:46:27
【问题描述】:
在尝试做这样的事情时:
connect(process1, SIGNAL(waitForReadyRead()), this, SLOT(dataReceived_1()));
我有太多的信号处理过程。 我已经创建了一个包含所有这些进程(对象)的 QList。
为了简化代码,我想把这个连接放在一个循环中,通过遍历processList来执行这个信号槽连接。
类似这样的:
for(int i=0; i<procList.length(); ++i){
connect(procList[i], SIGNAL(waitForReadyRead()), this, SLOT(data_rcvd[i]));
}
这里data_rcvd是一个包含槽函数的QList~
但不幸的是,我们不能在 QList 中添加函数。所以我想知道,有没有可能定义函数指针来完成这个任务???
或者您认为,我创建了一个新的 QProcess 类(扩展)并重载函数 waitForReadyRead() 以发出包含此特定信息的指针?
【问题讨论】:
-
每个进程的插槽有何不同?为什么不将所有进程的信号连接到单个插槽?
-
您是否有一组固定的方法/函数用作插槽?它总是1:1的关系吗?我们在谈论多少?
-
@tomdol 是的,他们是 1-1 和大约 20 个。
标签: c++ qt signals qlist slots