正常功能和Qt中的插槽有什么区别?

正常功能和Qt中的插槽有什么区别?,qt,Qt,正常功能和Qt中的插槽有什么区别?我已经读到,插槽与普通函数类似,但除了可以连接到信号之外,普通函数也可以连接到信号。不同之处在于,插槽具有get MOC处理并生成元数据,这是某些Qt功能所必需的,这些功能涉及通过字符串传递的成员名称进行运行时查找 仅对于连接,普通成员函数是完全可以的,因为Qt5使用了新的连接语法 对于Qt 4,您别无选择,只能使用插槽。什么是“正常功能”?您在哪里读到的?可能与宏connect(a,SIGNAL(),b,SLOT())的旧语法重复,您必须将方法声明为SLOT。

正常功能和Qt中的插槽有什么区别?我已经读到,插槽与普通函数类似,但除了可以连接到信号之外,普通函数也可以连接到信号。

不同之处在于,插槽具有get MOC处理并生成元数据,这是某些Qt功能所必需的,这些功能涉及通过字符串传递的成员名称进行运行时查找

仅对于连接,普通成员函数是完全可以的,因为Qt5使用了新的连接语法


对于Qt 4,您别无选择,只能使用插槽。

什么是“正常功能”?您在哪里读到的?可能与宏
connect(a,SIGNAL(),b,SLOT())
的旧语法重复,您必须将方法声明为
SLOT
。使用新的语法<代码>连接(A,A::信号,B,B::插槽)< /C> >,您不需要它。如果您想在QML和C++ +菲利克斯之间或“代码> QyNojkabry//Cube >之间交互,仍然需要时隙,但是我确实认为QML属于“按名称查找”的情况,这就是它的工作原理。如果一个slot函数像普通函数一样被调用,会有任何副作用吗(请不要猜,但要确定!)??@SaeidYazdani如果你直接调用它,则不会。然后它只是一个函数,使它成为一个插槽的是额外生成的元信息,而您并没有真正使用它。当插槽被信号调用时,它将执行它将在对象所在的线程中执行,除非您明确指定直接连接。