gpt4 book ai didi

c++ - 为什么普通的类方法可以用作 Qt 中的槽?

转载 作者:搜寻专家 更新时间:2023-10-31 01:34:34 26 4
gpt4 key购买 nike

对于给定的类定义:

class B : public QObject
{
Q_OBJECT
public:
void normalFunction(){ qWarning() << "normal function";}
signals:
void someSignal();
};

有如下代码:

B a;
QObject::connect(&a, &B::someSignal, &a, &B::normalFunction);
a.someSignal();

问题是可以将普通方法用作槽 - 没有编译错误,没有运行时警告,一切似乎都正常。将普通方法(这些方法未在 slots 部分中声明)用作插槽是否正确?我猜想在使用函数指针连接信号和槽时没有使用 moc 生成的元数据?

最佳答案

是的,这是正确的行为。使用函数指针语法,您可以连接到任何成员函数,而不仅仅是插槽(请参阅下面的 https://wiki.qt.io/New_Signal_Slot_Syntax#New:_connecting_to_QObject_member pros)。

关于c++ - 为什么普通的类方法可以用作 Qt 中的槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39205243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com