C++ Qt中的Has-a关系和信号
我是Qt开发的新手,我们的设计在几个地方使用了has-a关系。在某些情况下,容器应该公开内部对象的信号,然后我已经为每个这样的信号编写了一个专用插槽,在这里我实际上再次发出信号。Qt中是否有一些捷径可以帮助暴露容器上内部对象的信号?您不必创建重新发送信号的插槽,您可以将一个信号与另一个信号连接起来。这样可以避免插槽定义 所以在你的容器里,你会有这样的东西:C++ Qt中的Has-a关系和信号,c++,qt,C++,Qt,我是Qt开发的新手,我们的设计在几个地方使用了has-a关系。在某些情况下,容器应该公开内部对象的信号,然后我已经为每个这样的信号编写了一个专用插槽,在这里我实际上再次发出信号。Qt中是否有一些捷径可以帮助暴露容器上内部对象的信号?您不必创建重新发送信号的插槽,您可以将一个信号与另一个信号连接起来。这样可以避免插槽定义 所以在你的容器里,你会有这样的东西: connect(object, SIGNAL(signal1()), this, SIGNAL(signal1())); 当然,您必须重新
connect(object, SIGNAL(signal1()), this, SIGNAL(signal1()));
当然,您必须重新定义容器上的信号
有关更多详细信息,请检查您不必为重新发送信号创建插槽,您可以将一个信号与另一个信号连接起来。这样可以避免插槽定义 所以在你的容器里,你会有这样的东西:
connect(object, SIGNAL(signal1()), this, SIGNAL(signal1()));
当然,您必须重新定义容器上的信号
有关更多详细信息,请查看以下网址中的:
您可以将任意多个信号连接到单个插槽,并且可以根据需要将信号连接到任意多个插槽。甚至可以将一个信号直接连接到另一个信号。这将在第一个信号发出时立即发出第二个信号
以下是合法的:
connect(sender, SIGNAL(originalSignal()), SIGNAL(newSignal()));
从:
您可以将任意多个信号连接到单个插槽,并且可以根据需要将信号连接到任意多个插槽。甚至可以将一个信号直接连接到另一个信号。这将在第一个信号发出时立即发出第二个信号
以下是合法的:
connect(sender, SIGNAL(originalSignal()), SIGNAL(newSignal()));
若它是你们的类的内部结构,为什么你们不让它成为你们的类的朋友呢。然后您可以在内部结构调用中直接发出parentObj->signal如果它是类的内部结构,为什么不让它成为类的朋友呢。然后,您可以在内部结构中直接调用emit parentObj->signal重新发送信号也允许重新发送多个信号 testclass.h: main.cpp:
结果是在这种情况下,插槽被调用两次。信号的重新发射也允许重新发射多个信号 testclass.h: main.cpp: 结果是在这种情况下,插槽被调用了两次