当对象名称,信号和插槽全部在文本文件中指定时,如何连接2个对象的信号和插槽?Qt:连接来自文本的信号和插槽
获取正确的对象名称不是问题,因为我可以轻松地遍历数组并将名称与文件中的点名进行比较,但是必须有某种方法可以返回信号并且从文件插槽,并用它在连接功能,如:
connect(rtnObj1(line),SIGNAL(rtnSignal(line)),rtnObj2(line),SLOT(rtnSlot(line)));
其中RTN函数返回的对象名称/信号/槽,和“线”是从该文件的当前的QString线。
我知道的唯一方法是通过在每个组合中进行字面编码并将QStrings与if语句进行比较,但这会非常乏味,因为组合的数量会非常高。
注: 这里有一个简单的例子演示基本这个问题如何存在。
第1帧: 4 QComboBoxes。第一和第三保持对象名称,第二保持信号,第四保持槽。每个项目当然是这些列表中的一个QString。点击一个按钮将新行添加到文件中,写入从每个框中选择的文本。
第2帧:已经有必需的对象。读取文件时,它会将列表中定义的对象与已创建的对象相匹配,并按照文件描述将它们连接起来。
基于文件所保存的数据很容易创建对象,但是如何从文件创建/拉取信号和插槽?
编辑: 除非,是否能够这样连接?
connect(objectA, "", objectB, "");
因为我刚刚发现我的代码可以编译这样的,但是每当我试图把在插槽或信号名称我得到这样一个错误:
的QObject ::连接:使用在SIGNAL宏绑定瓷砖::点击
如果你正在寻找的示例代码,你很可能看到两个PyQt的绑定。 – o11c 2014-10-06 03:33:41
是的!非常感谢!这正是我所期待的!我知道必须有某种方式来做这件事,因为连接发生在运行时而不是编译时。感谢您抽出时间来加入这个例子。现在一切正常。 – Yattabyte 2014-10-07 00:32:16