Qt 自定义槽函数被执行两次

之前玩qt都是在Qt软件里玩,最近换了使用VS2019去玩,在对于信 与槽这块中,发现了一个问题:我在ui界面拖了一个按钮,然后按照qt的槽方法命名规则进行槽函数的命名,最后在构造函数中进行信 与槽的连接。然而运行后,单击按钮触发槽函数却执行了两次!!!
这就百思不得其解,最后在百度中找到了问题的根源,现在把问题的解决方法记录下来。


首先把我自己写的问题代码写下来

  1. ui界面拖动的按钮:

    Qt 自定义槽函数被执行两次
    对象名为:startBtn
  2. 自己定义的槽函数:

    具体实现就不显示了。

  3. 构造函数中进行信 与槽的连接:

其实看上去也没什么问题,也都没有 错。
其实这是有问题的。


解决方案:

将构造函数中的connect信 与槽的连接删除就好了!

原因:
代码中定义的槽函数的命名是按照qt的命名规则命名的,所以qt系统默认会帮我们把信 与槽连接起来,而我们在构造函数中再一次进行了连接,所以槽函数就被连接了两次,当按钮点击后,也自然而然的执行了两次槽函数。
qt默认槽函数命名规则:on_按钮对象名字_信 名字

当然也可以不按qt的命名规则命名槽函数,这样也不会出现槽函数被执行两次的问题。


总结:
在vs中玩qt,少了许多在qt软件中的便捷,所以也会出现许多各种各样的小问题,但这也是一种提升自己的体现,加油吧,打工人!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月7日
下一篇 2020年10月7日

相关推荐