Qt"连接"语法很长.是否有任何技巧可以缩短它?

gri*_*yvp 1 qt

在C#中,为了将信号连接到插槽(委托给方法),我所做的就是:

first.signal += second.slot
Run Code Online (Sandbox Code Playgroud)

但在Qt中它是:

connect( & first, SIGNAL( signal( int, int, QString ) ), & second, SLOT( slot( int, int, QSTring ) ) );
Run Code Online (Sandbox Code Playgroud)

而且这个被计算得很短,通常它们会产生2-3行.当然我完全理解Qt只模拟.h文件,而对于.cpp,它们必然会受到标准语法的限制,但是有什么技巧/方法可以使信号插槽连接更短一些吗?我知道通过给插槽提供特殊名称来自动将信号连接到插槽,但这仅适用于.ui文件中的信号.任何提示?

roh*_*npm 6

我知道通过给插槽提供特殊名称来自动将信号连接到插槽,但这仅适用于.ui文件中的信号

该方法可以在.ui文件之外使用,您可以在任何地方调用QMetaObject :: connectSlotsByName.

  • 请注意如何以及何时调用它...如果您在基类构造函数中执行此操作,然后再在派生类构造函数(例如)中执行此操作,则可能最终会将某些插槽连接两次.它不会区分运行时已经连接的那些.(你可能猜到我现在怎么知道.) (2认同)