在Qt中创建动态广告位
|
我正在尝试动态创建插槽并连接它们。我能够动态创建按钮并将它们与现有插槽连接。但是,如果我有一个带有某些成员函数的类,并且想将这些函数用作插槽该怎么办。
从一般的角度来看,我想创建一个模板,用于在给定函数指针的情况下生成插槽。这使我们可以创建插槽而无需更改现有代码,也不必使用MOC重新编译。
如果这没有意义,请告诉我。谢谢。
-简历
没有找到相关结果
已邀请:
2 个回复
稳赣苍卯改
不是您想要的。如果您的函数没有参数,那么像这样的东西就足够了:
为要封装的每个函数创建一个,然后照常连接到ѭ2。 现在,如果他们确实有争论,也许这篇Qt Quarterly文章可能会有所帮助。 Eskil A. Blomfeldt撰写的动态信号和插槽 该技术涉及您自己重新实现
方法。该方法具有以下签名:
调用是元调用的一种:插槽,信号,属性读取或写入等。每个插槽都有一个ID。参数打包在参数数组中(按值或作为指针)。读取moc生成的代码是了解其全部工作方式的好方法。 关于原始函数签名的数据仅在编译期间可用,但是插槽在运行时解析。由于这种不匹配,您将需要将函数包装到模板适配器类型中,该适配器类型为type3ѭ的实现提供一个恒定的接口,并将
数组转换为函数可以理解的内容(参见Python unpack运算符)。 Boost.Signals进行这种模板黑客。
乐遣杀屎