QT问题集锦-从学习Qt遇到地各种问题

  • 格式:doc
  • 大小:341.50 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一篇初级问题

1 用Qt4.8.5打不开冯工柏菲软件

问题描述:运行环境为Qt4.8.5 + QtCreator3.0.0+VS2010专业版 + Debuging Tools for Windows(x86),用Creator无法打开项目文件,截图如下:

弹出错误:Cannot read E:/PROJECT/Zhou-0410/testToolbar.pro: Unexpected UTF-8 BOM 原因分析:未知

解决方法:

1 安装VS2010SP1,未解决

2 安装VS-Add,未解决

3 使用Creator2.6解决

2 编译失败,系统找不到指定路径

问题描述:见下图

原因分析:

1)可能:添加VS编译器环境变量,在PATH中添加VS 中NMAKE路径

2)确定:Creator或编译器无法识别&符号,即路径原文件名为R&T中含有非法字符,无法准确识别路径

3)默认的环境变量已经有了NMAKE路径

解决方法:把路径中非法字符删除即可

3 编译出现乱码,Parse Error

原因分析:未知,应该是非法字符导致。

4 无法解析的外部符号

原因分析:声明的函数,未实现,或在未实现它的情况下调用了它

解决方法:实现后再调用

5 中文乱码

问题描述:见图

解决方法:转换成utf8格式

6 控件背景图片添加

问题描述:按照相对路径添加背景图片不显示解决方法:

1)相对路径起始点为构建目录,如图

2)添加资源文件,把背景图片放到资源文件中,再通过控件属性,指定资源文件中的背景图片即可。

7 昨天能启动运行成功,今天说异常结束,运行不了

原因分析:可能是昨天在windows、system32里面添加了qtcore.dll等文件导致

解决方法:删除之后就可以运行了,但具体删除哪个,待定

8 通过控件,查找操作函数?

9 修改控件名称时,弹出外部链接错误

解决方法:修改名称后,通常有以下步骤

1)在头文件中删除对应槽;

2)修改槽动作名称或重新生成槽动作,把之前代码拷贝到新槽动作中。

10 Qt数据类型转换

1)int 转 QString

int a=10;

QString b;

b=QString::number(a)

2)QString 转int

QString a="120"

int b;

b=a.toInt()

3) int 和枚举型转换

11 相对路径找不到要操作的文件路径

答:相对路径是Qt Creator 构建目录

12 Qt4显示中文

ui->label->setText(QObject::trUtf8("尼玛"));

13 Qt5加载不了QWT控件

答:qcreator是用VS编译的,而QWT的DLL是用mgw编译的,所以qtreator无法显示出对应控件。

14 设置窗体ICON

15 qt相对路径

16 控件大小无法改变

修改如下属性:minimumsize

第二篇中级问题

1 引用了外部链接库的头文件(.h),但未添加库路径(.lib)

问题描述:被引用的函数无法解析

原因分析:引用的头文件只是变量及函数的定义说明,而函数实现部分都封装在对应的库中

(lib+dll)

2 如何引用未添加到项目的外部头文件

描述:Qt项目中添加的头文件一般是根据需求自己写的,而项目中需要引用大量的Qt自带头文件及系统头文件,有时也需要用到第三方专用头文件,不可能把所有的头文件都加到项目中。那该如何引用这些已有的头文件呢?这里分三类进行讨论:

1)Qt SDK自带头文件

2)系统头文件

3)第三方头文件

3 无法调用QDom构造函数

原因分析:在.pro中未加入: QT += xml

4 引用外部DLL函数,无法解析的外部符号

描述:把dll文件和对应的.h文件拷贝到项目文件目录,添加.h文件到项目,引用dll函数时,出现无法解析的外部符号错误

分析:未将.lib库文件添加到项目中。

5 指针参数赋值未被使用

指针是指向地址的变量,buffer = temp.data仅仅是把参数buffer指向了temp.data的地址。而指针参数的目的是指向调用该函数时的数组地址,这里把指针指向了其他,则丢失了原有的数组,因为未能复制给数组。

5 类A的信号,类B的槽函数,如何关联

问题描述:no matching function for call to ……connect……

问题解析:我遇到过这种问题,应该是你&mDevice对应的类,没有继承QObject对象。Qt 的信号-槽机制必须以QObject为基类才能使用。

6 如何调用第三方库函数

参见QWT

7 如何切换控件颜色?

8 全局变量,所有cpp均可读写

Globe.h

Class globe

{

Static int num;

}

Globe.cpp

Globe::Globe()

{

}

Int Globe::num = 0;

9. qt保留指定为小数

double/float size = 2.3334524;

QString str = QString::number(size, 'f', 2);

其中f代表非科学计数法格式,2代表小数点后两位。