Qt 槽函数被执行两次的问题

2023-11-13

在使用vs2015编写QT程序时,偶然发现点击一次button槽函数响应了两次。我起初认为是鼠标问题,特意换了鼠标试试结果还是一样的,所以我就研究了一下。

按钮的名字是btn_account_add。以前我用Qt Creator,给按钮添加槽函数直接右键->转到槽,声明实现都自动生成了,方便的很,然而vs2015没有这个功能,只能自己手动添加,下面是我添加的代码。

槽函数声明处:

private slots:
	void on_btn_account_add_clicked();

槽函数实现处

void TEST::on_btn_account_add_clicked()
{
	qDebug() << "on_btn_account_add_clicked";
}

信号槽连接处

QObject::connect(ui.btn_account_add, SIGNAL(clicked()), this, SLOT(on_btn_account_add_clicked()));

这里的解决方法是删除connect函数

原因是这样的:
QT官方命名槽函数的方法是 on_对象名_信号(),这样QT会自动将信号和槽连接起来,无需使用connect函数再连接一次,因此我最后的connect是多此一举,故删除即可。这里槽函数如果没有遵循官方的命名规则,QT就不能自动的连接信号和槽,需要使用connect手动连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 槽函数被执行两次的问题 的相关文章

  • Qt程序部署到多平台,如何?

    我是 Qt 编程新手 我想开发一个程序 我想在 Windows Linux ubuntu 和 Mac 上运行 听说Qt支持多平台应用程序开发 但我的问题是 在我部署或编译后 任何 Qt 库都需要在 Ubuntu 中运行这个应用程序吗 如果您
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • 如何在带有预编译头的项目中使用google protobuf

    我有一个包含多个项目的解决方案 我的项目 但不是全部 使用预编译头 我决定使用 protobuf 但遇到了一个问题 在 protoc exe 从 proto 生成 pb h 后 我尝试包含标头并收到错误 预编译标头未包含在 pb h 中 我
  • 禁用 QML Slider 的鼠标滚轮

    我希望能够滚动Flickable使用鼠标滚轮 或触摸板上的两根手指 不改变Sliders它可能包含 示例代码及结果应用 import QtQuick 2 7 import QtQuick Window 2 2 import QtQuick
  • QGraphicsScene::clear 不会改变 sceneRect

    我有一个 QGraphicsScene 场景 和 QGraphicsView graphicsView 我有一个画图的方法 当我需要重绘所有图形时 我调用这个方法 一切都好 但我意识到 scene gt clear 不会改变 sceneRe
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • QTimer 一点也不准确?

    运行在 Windows7 64 位机器上 具有非常强大的 CPU 8 核 16 线程 我使用 QTimer 以 50Hz 触发函数调用 但我最终得到了 30Hz 函数调用本身肯定需要不到 10 毫秒才能完成 整个过程发生在一个单独的线程中
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • Qt:如何连接到 SQLite?

    我安装了 SQLite3 解压到 c sqlite 创建了一个数据库 c sqlite mzsales 现在我试图在 QTableView 中显示其内容 QSqlDatabase db QSqlDatabase addDatabase QS
  • 如何检测QTableView中的双击

    我正在使用 PyQt 创建 GUI 应用程序 在继承自 QTableView 的视图中 需要检测用户双击行时选择的行 该表可以排序 但不能编辑 我该怎么做 注意 尝试了 doubleClicked int 信号 它是由鼠标按钮发出的 而不是
  • 从 Qt4 中的文本文件中逐字读取

    我想在 Qt4 中逐字读取一个文本文件 说实话我对它很陌生 我想在另一个文件中每行一个字写入 我可以在 C 中做到这一点 没有任何问题 但是当我尝试在 Qt4 中使用 ifstream 和 ofstream 时 我遇到了错误 这是我的 Qt
  • Qt 是否已经有了自己的 new 和 delete 运算符?

    我正在使用一个QGraphicsScene小部件并在其上显示一些点QGraphicsRectItem 这意味着要拨打很多电话new addItem 当出现时 并且removeItem delete摆脱未使用的点 当然 对于性能问题 我已经实
  • 在高 dpi Windows 平台上自动重新缩放应用程序?

    我正在编写一个需要在高 dpi Windows 192dpi 而不是 96dpi 上运行的 Qt 应用程序 不幸的是 Qt 框架尚不支持高 dpi 至少在 Windows 上 因此我的应用程序及其所有元素看起来只有应有尺寸的一半 有没有办法
  • 静态变量中的 qt tr()

    我在 qt 中的翻译方面遇到问题 我的项目中的所有翻译都工作正常 但有一个翻译位于类的静态变量中 相应部分代码如下 头文件类似于这样 typedef struct int type QString problematicString inf
  • 为什么 QGraphicsWidget 的选择边框在 QGraphicsScene 中不可见?

    我已经通过一个小部件添加到图形场景 QGraphicSscene QGraphicsProxyWidget 问题是 当我选择该项目时 它被选中 但选择边框不可见 这是代码 QDial dial new QDial Widget dial g
  • Qt GUI 应用程序中的控制台输出?

    我有一个在 Windows 上运行的 Qt GUI 应用程序 它允许传递命令行选项 在某些情况下我想向控制台输出一条消息 然后退出 例如 int main int argc char argv QApplication a argc arg

随机推荐

  • RecyclerView的滑动事件禁止问题

    RecyclerView的滑动事件禁止问题 网上不太负责的朋友随便抛一句recyclerview setNestedScrollingEnabled false 但是请注意 setNestedScrollingEnabled false 只
  • yolov5运行过程遇到的小问题(随时更新)

    1 关于git的问题 解决办法 插入下面代码 import os os environ GIT PYTHON REFRESH quiet 2 页面太小无法完成操作 解决办法 如果不好使再考虑降低Batch Size大小或者调整虚拟内存可用硬
  • OpenACC多GPU编程

    include
  • CTFSHOW WEB题目

    web签到题 网页原代码中发现这个 base64解码就是flag web2 这道题目就是最简单的SQL注入了 发现万能密码可以成功 于是后台查询语句猜测是select column from table where username POS
  • echarts图表联动案例

    echarts是非常好用的图表插件 echarts官网 http echarts baidu com index html 需求 展示数据比较多 放在一个图不好展示 体验不好 所以用两个图进行联动展示 X轴数据一样 我封装成了一个方法 直接
  • java将String类型的json转为json对象并进行取出相应的值

    java将String类型的json转为json对象并进行取出相应的值 1 东西太大 简化 2 存进java的demo中 3 maven依赖 4 代码 背景 和别人对接项目 向其要了一个临时的假数据进行格式转换取用 1 东西太大 简化 js
  • 实验三

    include
  • Proxifier+Charles对电脑exe应用抓包(https)

    Proxifier Charles对电脑exe应用抓包 https 自己电脑使用Proxifier Fiddler抓包时折腾好久都是tunnel to 443 证书也都删了重新安装 还是没有用 尝试使用Charles抓包 结果就 成功了 记
  • 使用Electron开发PC客户端

    最近公司要求开发一个PC客户端 要求不能使用 NET开发 为了不让用户安装 net framework 所以就选择了Electron 随口听别人说了一句 之前从来没有接触过 目前项目要完毕了 所以就想记录一下在开发过程中遇到的一些问题和开发
  • Anaconda版本与python版本的对应

    Anaconda版本与python版本的对应 下载anaconda的时候需要指定版本 这个时候如果anaconda版本太高 这样安装python的时候无法安装低版本的适配python 因此需要自己确定需要什么版本的anaconda 下载的命
  • RTX3090+python3.8+tensorflow1.15虚拟环境配置

    RTX3090 python3 8 tensorflow1 15虚拟环境配置 RTX3090不支持安装tensorflow1系官方版本 nvidia tensorflow包含tensorflow1 15的cpu和gpu版本 测试可用 p s
  • JMeter压测:java.net.BindException: Address already in use: connect

    JMeter压测时报错 JMeter Response message Non HTTP response message Address already in use connect java net BindException Addr
  • 关于前端组件bootstrap使用上的几点小技巧

    关于前端组件bootstrap使用上的几点小技巧 1 再次查询时不是以第1页开始的 如果已经翻到第5页了 这个时候改变了一下查询条件 重新点击查询 这个时候会发现请求的根据最新查询条件的第5页的数据 而一般大家是希望点击查询按钮时重新从第1
  • 一键畅享云端ERP:使用Cpolar内网穿透将用友U8 Cloud部署至外网

    文章目录 前言 1 用户需求 2 Cpolar内网穿透的安装和注册 2 1 Cpolar云端设置 2 2 Cpolar Web UI本地设置 3 公网访问测试 前言 用友U8 Cloud是用友公司推出的一款云端ERP解决方案 它以云计算技术
  • 数据资源池和数据仓库的区别

    数据资源池和数据仓库都是企业中用来存储和管理数据的重要组成部分 但它们在实际应用中有着不同的作用和特点 数据资源池通常是一个集成多个数据源的中央存储库 可以存储不同类型和来源的数据 包括结构化 半结构化和非结构化数据 数据资源池可以通过不同
  • C++ 线程(std::thread)使用与并发

    目录 进程和线程 并发和并行 C 11 线程 多线程支持库 std thread 类成员函数 总结 示例 进程和线程 进程 程序 应用程序 可执行文件 一次执行 便开启了一个进程 进程是 CPU 独立分配资源的单位 线程 进程中的一个实体
  • C++ pair的基本用法总结(整理)

    pair
  • 理解Node.js的回调(Callback)

    一 回调 回调 Callback 是javascript中常用的使用方法 简单而言 就是 函数作为参数传递到另一个函数中 然后被调用 同样 在Node js中 比如I O操作发生的地方 经常使用回调模式 通过在回调函数中嵌套回调函数 可以控
  • 我的创作纪念日-128天

    机缘 移动办公的需求和个性化知识体系建立的需求共同需要一个方便 快捷的平台 当谈到移动办公的需求时 主要包括以下几点 任何时间 任何地点处理与业务相关的任何事情 例如家庭办公 出差员工远程办公等 这可以让员工摆脱时间和空间的束缚 单位信息可
  • Qt 槽函数被执行两次的问题

    在使用vs2015编写QT程序时 偶然发现点击一次button槽函数响应了两次 我起初认为是鼠标问题 特意换了鼠标试试结果还是一样的 所以我就研究了一下 按钮的名字是btn account add 以前我用Qt Creator 给按钮添加槽