QT问题集锦-从学习Qt遇到地各种问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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代表小数点后两位。