QT遇到的配置及语法问题记录(2022.7/11至2022.7/15)

11 Qt解析XML文件时报错:error occurred while parsing element

12 布局父亲警告:QLayout::parentWidget: A layout can only have another layout as a parent.

13 QGroupBox组合框布局问题

14程序无法运行的问题:如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS:

15 解决Qt中无论运行什么程序都会出现Error 20(this feature has not been implemented yet)的报错

16 导入网上的项目,运行报了几十几百的错误

11 Qt解析XML文件时报错:error occurred while parsing element

谷歌翻译解释:解析元素时发生错误。

网上查找后发现问题出在两方面:

一是内容中含有XML预定义好的实体,二是内容中含有低位非打印字符。

  1.内容中含有xml预定好的实体,如“<”和“&”,对xml来说是禁止使用的,针对这种字符,解决方式是使用CDATA部件 

以"<![CDATA[ 含特殊字符的代码 ]]>"来包括注明。

  2.内容中含有低位非打印字符,解析时会报错:""(十六进制值 0x1D)是无效的字符.加载或保存XML时引发的异常.System.ArgumentException: “”(十六进制值 0x1D)是无效的字符。

还有就是关注编码的问题,一定要确定整个文件的编码包括文件名的编码一致为utf-8。        

12 布局父亲警告:QLayout::parentWidget: A layout can only have another layout as a parent.  

通过谷歌翻译:QLayout::parentWidget:一个布局只能有另一个布局作为父级。

布局直接设置为父级的顶级布局。一个小部件只能有一个顶级布局。它由 QWidget::layout() 返回。

如果 parent 为 nullptr,则必须将此布局插入另一个布局,或使用 QWidget::setLayout() 将其设置为小部件的布局。

13 QGroupBox组合框布局问题  

在对界面上的布局进行了层层嵌套布局后,运行发现了这个错误:

         

 

 如上图组合框部分每次一设置,就会出现把里面的内容连带框本身一起消失的问题还有报错的问题,一开始我以为组合框相对于布局是独立的,只需要将树控件外的水平布局添加到总的紫色垂直布局就可以了,然后再把组合框的子布局设置为蓝色的水平布局,这样就是分开来嵌套,其实是错误的。

因为组合框并非是独立于其他布局之外的,在这里,它是处于树控件的水平布局和总布局之间的一层,只不过不像其他布局一样用addLayout作为子布局添加到总布局中,而是采用addwidget这样作为子控件加入到总布局中。

正确代码如下:

  mainLayout->addLayout(sel_Layout);

  mainLayout->addWidget(groupBox);

这里是值得注意的一个小细节。

14程序无法运行的问题:如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS

为了添加树控件的表头,写出了bug,导致即使代码改回去也运行不了,最后重新重新构建项目又可以运行了。

 

                     

15 解决Qt中无论运行什么程序都会出现Error 20(this feature has not been implemented yet)的报错

左下角搜索框搜素服务,打开

 

在服务中找到Nahimic service,

 

右键选择属性,启动类型切换为手动,然后停止该服务。

这样就不会开机自动启动这项服务。

 

回来Qt,选择项目运行。发现报错消失了。解决!

                                              

16 导入网上的项目,运行报了几十几百的错误

error: C2334: “{”的前面有意外标记;跳过明显的函数体    

error: C2065: “xxx”: 未声明的标识符 

等等这类错误,重复性很高,一般来说成系列的代码不会都运行出这么多错误,那就说可能是编码之类的错误。

网上查找后,成功办法如下:

一开始是这样的:

             

 

上面报了一个错误:

 

点击select encoding,

 

选择UTF-8,再选择reload with encoding

以防保险,我们再去上面的工具栏的工具 -> 选项 -> 文本编辑器 ->  Behavior/行为

 

文件编码里这么设置参数:

 

然后点击应用->确认。

接下来是在项目里面每个报错.cpp文件里添加头文件

#include <QDebug>

然后,在该.cpp文件里任意一个函数加点代码,例如

qDebug() << “ok”;

然后运行,这样,每个都修改之后,惊喜的发现几百个报错都消失了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值