sno*_*kin 2 c++ qt qt4 qt-creator
在QtCreator 更改信号/插槽上下文菜单中,我既不能插入信号也不能插入具有参数化参数的插槽,例如:QList <QString>等,甚至只能引用常规类型(int,QSring等)
为什么?
小智 5
将信号连接到套接字时,使用QObject的MetaType系统:
connect(发送者,SIGNAL(更新(QList <MyClass>),接收者,SLOT(list_updated(QList <MyClass>))
信号和槽的参数是"QList <MyClass>"元型.由于它是自定义元类型,因此Qt库不了解底层实现类型.
使用Q_DECLARE_METATYPE()声明新类型,以使它们可用于QVariant和其他基于模板的函数.调用qRegisterMetaType()使类型可用于非基于模板的函数,例如排队信号和插槽连接.
所以你需要在建立连接之前添加元类型声明:
qRegisterMetaType<MyClass>("MyClass");
qRegisterMetaType<QList<MyClass> >("QList<MyClass>");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |