C++ Qt:如何通知对象已建立涉及它的信号插槽连接

C++ Qt:如何通知对象已建立涉及它的信号插槽连接,c++,qt,c++11,qt5,signals-slots,C++,Qt,C++11,Qt5,Signals Slots,我想在建立信号插槽连接后立即使obj_成为发射信号_func。我的问题是,obj_a如何在建立这种联系的那一刻检测到这种联系;建立连接时,QObject::connect是否发出信号 //main function int main( int argc, char ** argv ) { QCoreApplication app(argc, argv); A obj_a; //A is a child class of QObject B obj_b; //B is a child

我想在建立信号插槽连接后立即使obj_成为发射信号_func。我的问题是,obj_a如何在建立这种联系的那一刻检测到这种联系;建立连接时,QObject::connect是否发出信号

//main function
int main( int argc, char ** argv )
{
  QCoreApplication app(argc, argv);
  A obj_a; //A is a child class of QObject
  B obj_b; //B is a child class of QObject
  // initialize obj_a, obj_b...
  QObject::connect( &obj_a, &A::signal_func, &obj_b, &B::slot_func ); //how can obj_a detect the establishment of this connection?
  app.exec();
}
根据Qt文档中的说明,此函数返回一个QMetaObject::Connection,它有一个方法指示连接是否成功建立。你可能会发现在你的情况下有用。只要布尔值为真,你就可以用obj_a做任何事情。
我希望这能帮助您解决问题。

您能澄清一下为什么要这样做吗?这听起来像是个xy问题。话虽如此,Qt5中的信号是公开的,因此没有什么可以阻止您添加obj_a.signal_func;尽管这可能不被认为是“最佳实践”,但在连接呼叫之后立即进行。