我是Qt开发的新手,我们的设计在几个地方使用了has-a关系.在某些情况下,容器应该暴露内部对象的信号,然后我当前为每个这样的信号写了一个私有插槽,我在实践中再次重新发出信号.Qt中是否有一些快捷方式可以帮助暴露容器内部物体的信号?
您不必创建用于重新发送信号的插槽,您可以将信号与另一个信号连接.这样您就可以避免使用插槽定义.
所以在你的容器中你会有这样的东西:
connect(object, SIGNAL(signal1()), this, SIGNAL(signal1()));
Run Code Online (Sandbox Code Playgroud)
当然,您必须重新定义容器上的信号.
有关更多详细信息,请查看信号槽文档
从文档:
您可以将任意数量的信号连接到单个插槽,并且可以根据需要将信号连接到任意数量的插槽.甚至可以将信号直接连接到另一个信号.(每当发射第一个信号时,这将立即发出第二个信号.)
以下是合法的:
connect(sender, SIGNAL(originalSignal()), SIGNAL(newSignal()));
Run Code Online (Sandbox Code Playgroud)