我必须开发一个消息总线,用于进程发送,接收彼此的消息.目前,我们正在Linux上运行,以便稍后移植到其他平台.
为此,我使用ZeroMQ over TCP.模式是带有转发器的PUB-SUB.我的总线作为一个单独的进程运行,所有客户端连接到SUB端口以接收消息,PUB发送消息.每个进程都通过唯一标记订阅消息.send来自进程的调用将消息发送给所有进程.一个receive通话将获取这一过程标有该进程的标签的消息.这工作正常.
现在我需要包装ZeroMQ的东西.我的客户只需要提供一个独特的标签.我需要维护一个全局的标签列表与ZeroMQ上下文和套接字的详细信息.当客户端说,
initialize_comms("name");总线需要检查此名称是否唯一,创建ZeroMQ上下文和套接字.同样,如果客户端说receive("name");总线需要使用该标记获取消息.
总结我所面临的问题;
我想在我的 Qt 应用程序中禁用除一组选定的小部件之外的所有小部件。
我想要做的是findChildren使用setEnabled(false).
QList<QWidget *> allWidgets = mainWindow->findChildren<QWidget *>("");
QList<QWidget*>::iterator it;
for (it = allWidgets.begin(); it != allWidgets.end(); it++) {
if ((*it)->objectName() != "myTable") // here, objectName is not working!!
{
(*it)->setEnabled(false);
}
}
Run Code Online (Sandbox Code Playgroud)
objectName()上面的if语句里面是行不通的。我在那里放什么?