本文介绍了使用Qt Creator创建信号和槽时出现错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经使用Qt Creator(版本4.7.0)创建了一个新的对话框,Qt Creator是模板表单之一(带有"确定"和"取消"按钮)。
我希望用户在表单上输入一些数据,然后当他们单击OK时,它会保存该信息。因此,我查看了一下,发现当单击OK按钮时,它会向对话框的Accept槽发送和信号。因此,我在设计视图中的对话框上单击鼠标右键,并选择"Go to Slot..."。我单击了"Accept"选项,这会将一个On_Dialog_Accept()方法放到Dialog类中。但是,当我运行该程序并打开该对话框时,我在控制台中收到错误消息:QMetaObject::connectSlotsByName: No matching signal for on_Dialog_accepted()
那么我做错了什么?
我在ConnectSlotsByName上找到了文档,但没有任何关于没有经验的Qt开发人员可能会使自己陷入的明显问题的文档。
推荐答案
右击设计视图中的对话框,然后选择"转到插槽..."建立了从对话框信号到对话框槽的连接,该连接不适用于QMetaObject::ConnectSlotsByName(),因为该方法搜索所有子对象,但不搜索对象本身。
实际上,您想要做的是右击OK按钮,然后选择"转到插槽..."。从那里开始。然后,它将使用您的按钮小部件的名称创建一个槽,并且将在运行时正确地建立连接。QtDesigner让您选择"转到插槽..."没有任何意义。从对话框中。为此,您可能需要向Qt的开发人员提交错误。
这篇关于使用Qt Creator创建信号和槽时出现错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!