Qt学习之报错学习记录:《按键控件》“C2001”、“C2143”、“C1071”报错及解决方法(以及最后显示窗口出现乱码的问题和点击pushButton按钮没反应的问题)

本文讲述了在编程过程中遇到的错误,如C2001、C2143等,分析了错误原因及解决办法,主要涉及QButtonGroup的使用,字符串处理,注释格式,以及信号与槽的连接。同时提到了中文字符在代码中的使用规范,如中文冒号导致的乱码问题,并给出了修正方案。最后强调了细节对于编程的重要性。
摘要由CSDN通过智能技术生成

学艺不精又花样作的我果不其然又触发报错,废话不多说,先上图好吧

在这里插入图片描述

error: C2001: 常量中有换行符
error: C2143: 语法错误: 缺少“;”(在“break”的前面)
error: C2001: 常量中有换行符
error: C2143: 语法错误: 缺少“;”(在“break”的前面)
error: C1071: 在注释中遇到意外的文件结束

这次是在学习使用QButtonGroup时出的问题,不过在经过了上次的教训后,看着它这次报的错和标记的位置,直觉告诉我大概又是空格的问题,于是我把这些地方一点一点用空格试,终于把它们每一个报错原因的整理出来了。

/
error: C1071: 在注释中遇到意外的文件结束
//
原因:
使用了/**/

且中间用的是中文且没用空格把中文两边与/**/相隔开

//
解决方法:
用空格把中文两边与/**/相隔开就好了

例如:

/*弹出消息框显示信息*/

改成

/* 弹出消息框显示信息 */


error: C2001: 常量中有换行符
error: C2143: 语法错误: 缺少“;”(在“break”的前面)
/
原因:
这两个是一个问题,
都是在进行QString变量赋值操作时
没把里面的中文内容与""符号隔开
///
解决方法:
用空格把它们隔开
//
例如:

str+="婚姻状况:未婚";

改成

str+=" 婚姻状况:未婚 ";

即可
/
至于点击了pushButton按钮结果没能弹出窗口什么的,有没有一种可能,你写的是SIGNAL(clicked)而不是SIGNAL(clicked()),又或者如果你的槽函数是void pushButton_clicked();的话,你写的是SLOT(pushButton_clicked)而不是SLOT(pushButton_clicked())。
诸如此类的还有很多,这些还都不会报错,只会让你的窗口显示不出来罢了,务必在重新检查一下。

还有就是窗口出现乱码,大概就是下面这样
在这里插入图片描述
窗口名的乱码出现的原因可能是我在那里还用了个“:”符号,删掉就行了

" 显示选择结果: "

改成

" 显示选择结果 "

就行了。

但是窗口里显示的文本内容依旧有乱码
不过问题不大,经过我不断的思考尝试,我发现它这里乱码的原因:
其实是像下面这个的两个地方有问题

str+=" 婚姻状况:已婚 ";

在前面有声明:

//存放显示结果
QString str;

这中间的“:”我用的是中文符号——中文版的冒号。
我以为在英文版的双引号中既然中文字符串都可以,那中文版的冒号应该也问题不大,但是这大家伙们也看到了,这还真不行,把它改成英文版的冒号以后就没问题了。

str+=" 婚姻状况:已婚 ";

改成

str+=" 婚姻状况:已婚 ";

其他地方出现相同问题的一样要改。

改完后运行如下图:
在这里插入图片描述
是吧,这不就正常了。

所以说,细节决定成败,各位要注意点哈。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值