gpt4 book ai didi

c++ - QtCreator 与信号和槽

转载 作者:搜寻专家 更新时间:2023-10-31 00:46:05 25 4
gpt4 key购买 nike

在 QtCreator change signals/slots 上下文菜单中,我不能插入具有参数化参数的信号和槽,例如:QList 等,甚至不能仅引用常规类型(整数、QSring 等)

为什么?

最佳答案

当您将信号连接到套接字时,您使用 QObject 的 MetaType 系统:

连接(发送者,SIGNAL(更新(QList ),接收者,SLOT(list_updated(QList ))

信号和槽的参数是“QList ”元类型。由于它是自定义元类型,Qt 库不知道底层实现类型。

Declare new types with Q_DECLARE_METATYPE() to make them available to QVariant and other template-based functions. Call qRegisterMetaType() to make type available to non-template based functions, such as the queued signal and slot connections.

所以你需要在连接之前添加元类型声明:

qRegisterMetaType<MyClass>("MyClass");
qRegisterMetaType<QList<MyClass> >("QList<MyClass>");

关于c++ - QtCreator 与信号和槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5607011/

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