QT问题集锦-从学习Qt遇到的各种问题.doc_第1页
QT问题集锦-从学习Qt遇到的各种问题.doc_第2页
QT问题集锦-从学习Qt遇到的各种问题.doc_第3页
QT问题集锦-从学习Qt遇到的各种问题.doc_第4页
QT问题集锦-从学习Qt遇到的各种问题.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一篇 初级问题1 用Qt4.8.5打不开冯工柏菲软件问题描述:运行环境为Qt4.8.5 + QtCreator3.0.0+VS2010专业版 + Debuging Tools for Windows(x86),用Creator无法打开项目文件,截图如下:弹出错误:Cannot read E:/PROJECT/Zhou-0410/testT: 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 转 QStringint a=10;QString b;b=QString:number(a)2)QString 转intQString a=120int 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 设置窗体ICON15 qt相对路径16 控件大小无法改变修改如下属性:minimumsize第二篇 中级问题1 引用了外部链接库的头文件(.h),但未添加库路径(.lib)问题描述:被引用的函数无法解析原因分析:引用的头文件只是变量及函数的定义说明,而函数实现部分都封装在对应的库中(lib+dll)2 如何引用未添加到项目的外部头文件描述:Qt项目中添加的头文件一般是根据需求自己写的,而项目中需要引用大量的Qt自带头文件及系统头文件,有时也需要用到第三方专用头文件,不可能把所有的头文件都加到项目中。那该如何引用这些已有的头文件呢?这里分三类进行讨论:1) Qt SDK自带头文件2) 系统头文件3) 第三方头文件3 无法调用QDom构造函数原因分析:在.pro中未加入: QT += xml4 引用外部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 如何调用第三方库函数参见QWT7 如何切换控件颜色?8 全局变量,所有cpp均可读写Globe.hClass globeStatic int num;Globe.cppGlobe:Globe()Int Globe:num = 0;9. qt保留指定为小数double/float size = 2.3334524;QString str = QString:number(size, f, 2);其中f代表非科学计数法格式,2代表小数点后两位。10 QwtPlot plot = new QwtPlot(),提示未定义引用未连接QWT库 need to link to the Qwt library.第三篇 专题综述11. 指针变量按“点”后,不自动弹出箭头QwtPlotCanvas *canvas = new QwtPlotCanvas();把new 后面的括号去掉即可5.1 各种数据类型转换1 char * 与 const char *的转换char *ch1=hello11;const char *ch2=hello22;ch2 = ch1;/不报错,但有警告ch1 = (char *)ch2;2 char 转换为 QString其实方法有很多中,我用的是:char a=b;QString str;str=QString(a);3 QString 转换为 char方法也用很多中QString str=abc;char *ch;ch = str.toLatin1.data();4 QByteArray 转换为 char *char *ch;/不要定义成chn;QByteArray byte;ch = byte.data();5 char * 转换为 QByteArraychar *ch;QByteArray byte;byte = QByteArray(ch);6 QString 转换为 QByteArrayQByteArray byte;QString string;byte = string.toAscii();7 QByteArray 转换为 QStringQByteArray byte;QString string;string = QString(byte);这里再对这俩中类型的输出总结一下:qDebug()print;qDebug()tr(print);qDebug()ch;(ch 为char类型)qDebug()tr(ch);qDebug()byteArray;(byteArray是QByteArray类型)qDebug()tr(byteArray);qDebug()str;(str 为Qstring类型)但是qDebug()tr(str);是不可以的,要想用tr()函数输出QString类型的字符则要如下:qDebug()tr(str.toLatin1);8 int 转 QStringint a=10;QString b;b=QString:number(a)9 QString 转intQString a=120int b;b=a.toInt()10 char * 与 const char *的转换char *ch1=hello11;const char *ch2=hello22;ch2 = ch1;/不报错,但有警告ch1 = (char *)ch2;11 char 转换为 QString其实方法有很多中,我用的是:char a=b;QString str;str=QString(a);12 QString 转换为 char方法也用很多中QString str=abc;char *ch;ch = str.toLatin1.data();13 QByteArray 转换为 char *char *ch;/不要定义成chn;QByteArray byte;ch = byte.data();14 char * 转换为 QByteArraychar *ch;QByteArray byte;byte = QByteArray(ch);15 QString 转换为 QByteArrayQByteArray byte;QString string;byte = string.toAscii();16 QByteArray 转换为 QStringQByteArray byte;QString string;string = QString(byte);这里再对这俩中类型的输出总结一下:qDebug()print;qDebug()tr(print);qDebug()ch;(ch 为char类型)qDebug()tr(ch);qDebug()byteArray;(byteArray是QByteArray类型)qDebug()tr(byteArray);qDebug()str;(str 为Qstring类型)但是qDebug()tr(str);是不可以的,要想用tr()函数输出QString类型的字符则要如下:qDebug() stringQString.toStdString();2 string - QStringQString:fromStdString(string)3 QString -int,double,char *QString:toInt()QString:toDouble()QString.toStdString().c_str();4 int double char* -string可以采用里的stringstream以int 为例,int a = 3;stringstream ss;string strInt;ssstrInt;其他两个一样。5 int double char*转QString一种方法可以先转string,再转QString。另一种方法可以查看QString类的函数。其一:静态函数QString number ( double n, char format = g, int precision = 6 )其二:非静态函数,需构造QString实例来调用的 QString & setNum ( double n, char format = g, int precision = 6 )QString:number()这个静态函数,参数可以是int,也可以是double。6 double int的互转可采用static_cast5.2 结构体类型转换1)结构体转字符数组struct A int a; int b;char buf100;A a = 1,2;memcpy(buf, &a, sizeof(A);2)字符数组转结构体5.3 调色板使用QPalette类有两个枚举类型, 枚举 1、ColorGroup CorGroup指的是3中不同的状态(什么时候设置颜色): 1Active:获得焦点的状态。 2Inactive:未获得焦点的状态。 3Disable:不可用状态。 通常情况下,Active状态与Inactive状态下颜色显示是一致的,当然也可根据需要设置成不一样的颜色 2、ColorRole(设置什么颜色)。 ColorRole指的是颜色主题,即对窗体中不同部位颜色的分类,如QPalette:Window是指背景色,QPalette:WindowText指的是前景色等。 常用: QPalete:Window, 通常指窗口部件的背景色;QPalette:WindowText,通常指窗口不见的前景色(QLabel也可以使用);QPalette:Base,指文本输入窗口部件(比如QTextEdit,QLinedit,QPlainTextEdit等)的背景色QPalette:Text,与QPalette:Base一块使用,指文本输入窗口部件的前景色;QPalette:Button,指按钮窗口部件的背景色; QPalette:ButtonText,指按钮窗口部件的前景色 QPalette:Highlight:用于设置文字高亮时的背景颜色 QPalette:HighlightedText:用于设置文字高亮时的颜色 QPalette: Link:超链接文字颜色 QPalette: LinkVisted:超链接文字访问后的颜色 (目前使用的很少,但是可以直接拿来用)因为,带有默认色 QPalette: Light:比Button的亮 QPalette:Midlight:亮度在Light与Button之间 QPalette:Dark: QPalette: Mid QPalette:Shadow 例如: /设置可以自动填充背景色 ui-label-setAutoFillBackg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论