VS开发QT项目,手写按钮槽函数避坑

2023-11-04

VS开发QT项目,手写按钮槽函数避坑

由于最近开发需要在VS2017上配置QT开发环境,进行QT项目的开发,之前从来没有这样使用过,在此记一些坑。

1、QT Creator按钮槽函数

QT的槽函数是非常方便的,使用QT Creator可以自动生成代码,方便快捷。但是代码可读性不强,一些连接方面的信息都被隐藏了。由于之前一直使用QT Creator,所以其实还是挺喜欢这种方式的。具体操作是在控件界面拖动一个按钮放在设计界面。
QT Creator中的界面设计页
这时我们用鼠标右键PushButton按钮,会有一个转到槽的选择。点击之后在代码页会自动生成相应的代码,我们只需要在该按钮的槽函数中添加响应事件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

但是! 在VS中打开界面,再右键按钮时没有转到槽这个选项,这就需要我们自己手写槽函数与连接。

2、VS中添加按钮槽函数

其实手写槽函数跟在QT Creator中差不多,只不过多了一个连接的过程。
第一步,跟在QT Creator中一样,添加槽函数。

//.h文件
//添加槽函数声明
private slots:
	void pushbutton_slots();
//.cpp文件
//添加槽函数定义
void QtFileTest_1::pushbutton_slots()
{
	//	添加需要的操作
}

第二步就是最重要的连接部分,在QT中常使用connect来绑定信号槽,也是最容易出错的地方。
首先是一种比较老的方式:

//.cpp文件
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(pushbutton_slots));

这种方式在VS中,在点击按钮之后并不能触发槽函数,醉了醉了!
第二种,在QT5中换了一种方式:

//.cpp文件
connect(ui.pushButton, &QPushButton::clicked, this, &QtFileTest_1::pushbutton_slots);

这中方式可以比较清晰的看出槽函数在哪个类中,在VS中也能正常使用。
但是!千万不要两种方式混合使用

3、踩坑

当你两种方式混合使用的时候,是会报错的!
“Signal and slot arguments are not compatible”

还有看到一些博客,在使用带参数的信号槽函数时,还是用旧的方式,但是好像VS中不能使用,以后需要使用再说吧。具体关于信号槽的使用可以去看相关博客。

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

VS开发QT项目,手写按钮槽函数避坑 的相关文章

随机推荐

  • 专治疑难系列 - 解决Ubuntu忘记root密码问题

    博客主页 Passerby Wang的博客 CSDN博客 系统运维 云计算 Linux基础领域博主 所属专栏 专治疑难系列 上期文章 专治疑难系列 解决win11中xbox开机自启问题 如觉得博主文章写的不错或对你有所帮助的话 还望大家多多
  • python多线程获取百度搜索(5.26更新)

    1 网站 输入搜索内容 获取搜索结果 进行保存 把内容整理后保存到mysql数据库 保存字段 关键字 标题 真实网址 简介 原网站名称 2 爬取结果 3 编写爬虫 爬虫使用scrapy框架编写 分布式 多线程 编写Items class B
  • Win10做系统,你自己就可以完成,不要再让别人帮你做系统啦(保姆级教学,手把手带你一步一步走!!!)你不会还不会做系统吧??快来看一看呀~

    我在这里把win10系统网址给大家放在这里啦 下载 Windows 10 microsoft com 然后下载下来之后 大家准备一个16G以上的空U盘 然后打开我们下载的这个文件 然后大家选择对应的U盘就可以啦 我的电脑是DELL 所以我就
  • 对于web代码基础了解

    快捷方式 1 基本骨架 shift 2 备注 ctrl 基本代码 1 段落标签 p p 2 换行标签 3 水平线标签 hr 4 加粗 strong strong 5 倾斜 em em 和 i i 6 容器 独占一行 div div 7 容器
  • Functions___CH_12

    12 1 Function Pointers Pointers to functions The syntax for creating a non const function pointer is one of the ugliest
  • 历时6个月, 非CS专业的我, 终于在毕业前拿到了谷歌软件工程师offer!

    本文作者 Isabel 本科就读于上海财经 研究生就读于CMU information management相关专业 在来Offer的帮助下成功 转码 入职谷歌 就在离毕业还有一个多月的时候 我收到了来自谷歌的offer 至此 心中的一块大
  • 机器视觉、目标检测常见应用场景

    机器视觉 目标检测常见应用场景 人脸人体检测 智能美肤 在保持皮肤质感的同时 自动对脸部进行匀肤 去瑕疵 痘 痘印 雀斑等 操作 并对全身皮肤进行美白 智能瘦脸 系统自动检测并分析人脸五官特征 生成脸部五官调整瘦脸后的图像 图像人脸融合 图
  • 华为OD机考题目(自动化测试)

    目次 1 求第k长的字串的长度 2 上N阶台阶问题 3 踢出石子问题 1 求第k长的字串的长度 描述 一个字符串只包含大写字母 求其连续相同字母子串中 长度第K长的子串长度 相同字母只取 最长那个子串 例 AAAAHHHBBCDHHHH K
  • SpringBoot集成Hutool 实现数据库数据导出到Excel 功能

    日常开发中 在B端页面上 经常需要将数据库中的数据 导出到Excel 我们今天用Hutool工具包 实现一下这个功能 一 Hutool简介 Hutool是一个功能丰富且易用的Java工具库 通过诸多实用工具类的使用 旨在帮助开发者快速 便捷
  • Lua UnPack函数用法

    这篇文章主要介绍了Lua UnPack函数用法实例 unpack它接受一个数组 table 作为参数 并默认从下标1开始返回数组的所有元素 local info 1 2 3 4 5 6 local a b c d e f unpack in
  • jenkins_svn_maven持续集成

    详解Jenkins svn maven 项目持续集成 第一步 由于刚刚接触jenkins 并不知道他是个什么东西 首先百度一下 然后进入官网 下载安装包 第二步 windows 安装 下载完了 打开里面有2个文件 setup exe Jen
  • JVM内存模型详解

    目录 1 JVM整体架构 2 JVM运行时内存 2 1 PC程序计数器 2 2 虚拟机栈 2 2 1 什么是栈帧 2 2 2 局部变量表 2 2 3 操作数栈 2 2 4 动态链接 2 2 5 方法返回地址 2 3 本地方法栈 2 4 堆
  • LNK1104 无法打开文件 libboost_system-vc142-mt-gd-x64-1_74.lib

    LNK1104 无法打开文件 libboost system vc142 mt gd x64 1 74 lib 问题 解决
  • 【应急响应】挖矿脚本检测指南&威胁情报&样本定性&文件清除&入口修复

    文章目录 挖矿样本 Win Linux 危害 定性 Linux Web安全漏洞导致挖矿事件 Windows 系统口令爆破导致挖矿事件 Linux 个人真实服务器被植入挖矿分析 挖矿样本 Win Linux 危害 定性 危害 CPU拉满 网络
  • vue-admin-beautiful 同时使用Api和MockJs

    根据项目修改接口地址config net config js 此处按自己所需组装 把utils request js复制一份 并重命名为request mock js 把baseURL设置为 vab mock server 使用mock数据
  • print()函数中引号的用法

    首先在开头强调非常重要的一点 在python学习中 默认所有的正确的语法 包括括号 标点符号等都是 英文 print 函数的用法有四种 1 无引号 2 单引号 3 双引号 4 三引号 1 无引号 print 520 没有引号的作用是为了让计
  • ThinkPHP5 三表联合查询

    使用ThinkPHP5 查询构建起进行三表联合查询 account info Db name third party tasks gt alias a gt join third party taskgroups b a taskGroup
  • [4G&5G专题-128]:5G培训关键技术篇-1-5G的网络概述

    作者主页 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 118459771 目录 第1部分 移动业务需求趋势
  • 超详细html5登录注册页面总结

    一 HTML5简介 HTML是互联网上应用最广泛的标记语言 HTML文件就是普通文本 HTML标记 而不同的HTML标记能表示不同的效果 HTML5优势 HTML5并不是一种革新的的升级 而是一种向规范向习惯的妥协 因此HTML5并不会带给
  • VS开发QT项目,手写按钮槽函数避坑

    VS开发QT项目 手写按钮槽函数避坑 1 QT Creator按钮槽函数 2 VS中添加按钮槽函数 3 踩坑 由于最近开发需要在VS2017上配置QT开发环境 进行QT项目的开发 之前从来没有这样使用过 在此记一些坑 1 QT Creato