QT问题集锦从学习Qt遇到的各种问题.docx

上传人:b****8 文档编号:13059541 上传时间:2023-06-10 格式:DOCX 页数:19 大小:200.90KB
下载 相关 举报
QT问题集锦从学习Qt遇到的各种问题.docx_第1页
第1页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第2页
第2页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第3页
第3页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第4页
第4页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第5页
第5页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第6页
第6页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第7页
第7页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第8页
第8页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第9页
第9页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第10页
第10页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第11页
第11页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第12页
第12页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第13页
第13页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第14页
第14页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第15页
第15页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第16页
第16页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第17页
第17页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第18页
第18页 / 共19页
QT问题集锦从学习Qt遇到的各种问题.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

QT问题集锦从学习Qt遇到的各种问题.docx

《QT问题集锦从学习Qt遇到的各种问题.docx》由会员分享,可在线阅读,更多相关《QT问题集锦从学习Qt遇到的各种问题.docx(19页珍藏版)》请在冰点文库上搜索。

QT问题集锦从学习Qt遇到的各种问题.docx

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

第一篇初级问题

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

专业版+DebugingTools

问题描述:

运行环境为Qt4.8.5+QtCreator3.0.0+VS2010

forWindows(x86),用Creator无法打开项目文件,截图如下:

 

弹出错误:

CannotreadE:

/PROJECT/Zhou-0410/testToolbar.pro:

Unexpected

UTF-8BOM

原因分析:

未知

解决方法:

1安装VS2010SP1,未解决

2安装VS-Add,未解决

3使用Creator2.6解决

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

问题描述:

见下图

 

 

aar9TF33EMBMFtmufldktr**■「

W匿受去占完"矗&护上聪专*「

2i:

51l24£正总比芒]hEHCigiiAJ:

FlleiS(j*2€i.i-dHizzM^f匚V15JE13匚Libi.口ID-2>■■.CBIBfmite.eaeH

■Ds-M'aogsiiiFilatv|XhLiezcaafT.Tl>ua.l10.DV712\BIE1'>shaju.mq19-CHAfaCLla.lNibjg!

_■L.i:

-4.=.~J;..Utt-ffmiZCMl.■MUTIJ:

-fiQT_DLL■BgN^_DU^BHLfWXu.D@T_QLL.-

WTSUI_WB-wrCeM:

_lJB-呻口砂IEJfflfli-aQT_}flVE=S5£■冷」HXITEJCTOXT■曄严西二适Eh-I^^TTO^^JWPCsCT-I«c3.i7&\vS>aiaxj.iKl^dh\grt^»BH占*甘胃盘首丄曲*.曲diuia'^j.-工■匸=£軒\■二百■轨右久-!

■==

・■・»XVAJOSOXiMAuMX^WvhRuv".I-l«ltSK4T\>>rl*1MriXqflaL»»r&«Xp«reShh"-1*«i

%QcXe3K-C・D・2\ffrtE-T"t.Mbas-Otani"-I-gs'MJsM:

・C,=YT3^[Jl・\:

LiKJ1EHlu'iiJiGGiT^S・-J^lEtaW-I1".--I"・,^ZhnaHlVQf-I".--I^ci;■沪"■•■w>a*B_!

13C_yEfl-HtO亠DWimf^\RiT\JleriALPwci4eKMfialjpa£«^j«MBitt{a«-MWemib-a

jetu^'ijKi^QCTEKrl«lpart.-npcme;frXK;FTefuc3ifile-

丄MbHE:

riEzaltziarD1C-7T:

fc£j\€r\4:

„S.&XTS2Q1DXt_n'1.■-ii:

.tie"':

爲Rff旧"

Stef:

.

创AKEIf«c«JL»ie«jQIG""4叭加巧・*»Tiliv|is”|IM■■■■■•監7i*m«19wu4k«C>\W\>T44\hnI«>.«h*hmi'9b3*

2七T

23;57;2flFMH"&'(.riWcsiiFULeB(x«4)MVIorasiDEtVisual*5tEWlilgV^lEkim口i"

CTT^F'ufliIf^93gjr?

5tfl?

?

tflT-?

-Pl>4X>(£11;I

皆g行歩強辿JU

原因分析:

1)可能:

添加VS编译器环境变量,在PATH中添加VS中NMAKE路径

2)确定:

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

无法准确识别路径

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

解决方法:

把路径中非法字符删除即可

3编译出现乱码,ParseError

原因分析:

未知,应该是非法字符导致。

4无法解析的外部符号

■Nir^ird^Mobji

¥E^SJDI'TitW^tfl=l-S^T'j-iilic'v-irlwtl««ai-feMm-«11HLbMifawdiH~"fivnVEHmAvant*)■hii.d.-

.丄_;・£

■INK2OQ1;^*ISWTWSRW'pub^virtualvcvds4hk£all出日*训fGdM:

;kqenBtG£wE(£lafi占QKayEYm1"(^a^rKsEraMV'MiainWlnd&wO*-mdlwindc^obji

Qum初“⑪眇“叩,用Ws创Rt1i%ual敦dip'SVOJBPMVbniaxEry帼rCM&0・KMME

hMAKE

O■D:

A&ra™削骼r阚沪汕灯曲It讪gl细g皿严*此阿rt丙画闭K■宾苦

原因分析:

声明的函数,未实现,或在未实现它的情况下调用了它

解决方法:

实现后再调用

5中文乱码

问题描述:

见图

#ui{newUi:

:

MainWindow)

{

ui->secuptJl(匸勺二日};

//ui->label->setlext(tr按"F!

"JJ:

//ui->label->setlex€(QStjeing;;£xcicU^f^(n®SAlS^T!

")];}

」nfiTinHriT-T'-

G•A配

AC«19:

该立件包含不能住当前代码页臨)中寰示的字捋431将该文件保存均Uhicods搭式以晦止數II丢尖E:

\STUDY\test1\test1\rnair)windcwxpp

迎C2228:

扁rg”的左边必预有對结构/联合

Ar?

AA

1->PO3()M);

i->pas{).y(>j

shButzton—^setText\

(Q^trina:

:

£ramUt£Sf*鼠标

6控件背景图片添加

问题描述:

按照相对路径添加背景图片不显示

解决方法:

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

构建设置

#漏t枸繭骨漲加*J|_冊陆」[至命屯…

1RS

Sl

H

羯生目录-E-\STUPff\匕・gtl\fat7tl-tpi1a黑面-DabnE

!

h<(E:

)■iTUCY■^estl*test】-build宜肯D乜bug

2014/7/151C^0l

20H/7/1515:

201^/7/151^012014/7/1512"2D1A/7/15105?

0l4/7/1515i072014/7/151&0+

2014/7/151^0H

Makefi'e

jMakvfil^RtlfAE#

“Linaiwirdow韵vclOO

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

件中的背景图片即可

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

原因分析:

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

解决方法:

删除之后就可以运行了,但具体删除哪个,待定

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

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

解决方法:

修改名称后,通常有以下步骤

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

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

10Qt数据类型转换

1)int转QStringinta=10;

QStringb;

b=QString:

:

number(a)

2)QString转int

QStringa="120"intb;

b=a.toInt()

3)int和枚举型转换

若你真的裳从inl$专换成5恥应提供强制类型转换:

I[cpp]fi喻

91.void代)

02.{

03.匚cilu厂x;

04,x»redj//changextored

05*x=Color(l);//change>towhite

96.x-匚olor

(2);//changextok>lu«

07Px=//tompile-tim亡error;tan*tconvertinttuColor

但你应保证从in酷换来的Colors型有倉义。

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

答:

相对路径是QtCreator构建目录

12Qt4显示中文

13Qt5加载不了QWT控件

无法显

答:

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

14设置窗体ICON

15qt相对路径

16控件大小无法改变

修改如下属性:

minimumsize

屈性

80Q

460

*si^efelicy

[Preferred,Prefer..

水平簞昭

Preferred

垂亘策昭

Preferred

0

垂直悴冕

0

JminimumSize

800m460

SOO

高度

maKimuiTiSi2e

16777215at1&777_„

【、sizelncrement

0x0

0x0

第二篇中级问题

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

问题描述:

被引用的函数无法解析

原因分析:

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

(lib+dll)

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

描述:

Qt项目中添加的头文件一般是根据需求自己写的,而项目中需要引用大量的Qt自

带头文件及系统头文件,有时也需要用到第三方专用头文件,不可能把所有的头文件都加到

项目中。

那该如何引用这些已有的头文件呢?

这里分三类进行讨论:

1)QtSDK自带头文件

2)系统头文件

3)第三方头文件

3无法调用QDom构造函数

原因分析:

在.pro中未加入:

QT+=xml

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

描述:

把dll文件和对应的.h文件拷贝到项目文件目录,添加.h文件到项目,引用dll函数

时,出现无法解析的外部符号错误

分析:

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

5指针参数赋值未被使用

■intA5521-6:

:

ReceiveData(charxbuffer^

QByteAizayteirp;

//serial;

//rexurnserial*read(buffer^sizeof(buiffer));teirp.endferial.readAll(H;

buffei=ten^p»data(};

<5;

J

指针是指向地址的变量,buffer=temp.data仅仅是把参数buffer指向了temp.data的

地址。

而指针参数的目的是指向调用该函数时的数组地址,这里把指针指向了其他,则丢失

了原有的数组,因为未能复制给数组。

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

问题描述:

nomatchingfunctionforcalltoconnect

问题解析:

我遇到过这种问题,应该是你&mDevice对应的类,没有继承QObject对象。

Qt的信号-槽机制必须以QObject为基类才能使用。

:

IL口hiiLCtioziLoro«JLLioMa.LnVlrulov"cc^iuudtltoilst口to^.ur丄ccnstLlSi

connectIthLsjSlGNS丄ige-Marte;QStr^ng)i)fimDevciefSLOT(2Srxing)i>);

LWORK\PRO」ECT\PLATFOKSAA阳氐吃割加阳国办飢ifnairwiiTowACpp

0notypenRifledOb-ert'ir'sti-urtQtPriveteiFundioiii^iriter^cDfigtchar*^'

6如何调用第三方库函数

参见QWT

7如何切换控件颜色?

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

Globe.h

Classglobe

{

Staticintnum;

}

Globe.cpp

Globe:

:

Globe()

{

}

IntGlobe:

:

num=0;

9.qt保留指定为小数

double/floatsize=2.3334524;

QStringstr=QString:

:

number(size,'f,2);

,提示未定义引用

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

10QwtPlotplot=newQwtPlot()未连接QWT库needtolinktotheQwtlibrary.

第三篇专题综述

11.指针变量按“点”后,不自动弹出箭头

QwtPlotCanvas*canvas=newQwtPlotCanvas()

把new后面的括号去掉即可

5.1各种数据类型转换

1char*与constchar*的转换char*ch1="hello11";

constchar*ch2="hello22";

ch2=ch1;〃不报错,但有警告

ch1=(char*)ch2;

2char转换为QString

其实方法有很多中,我用的是:

chara='b';

QStringstr;

str=QString(a);

3QString转换为char

方法也用很多中

QStringstr="abc";

char*ch;

ch=str.toLatin1.data();

4QByteArray转换为char*

char*ch;〃不要定义成ch[n];

QByteArraybyte;

ch=byte.data();

5char*转换为QByteArray

char*ch;

QByteArraybyte;

byte=QByteArray(ch);

6QString转换为QByteArray

QByteArraybyte;

QStringstring;

byte=string.toAscii();

7QByteArray转换为QString

QByteArraybyte;

QStringstring;

string=QString(byte);

这里再对这俩中类型的输出总结一下:

qDebug()<<"print";

qDebug()<

qDebug()<

qDebug()<

qDebug()<

qDebug()<

qDebug()<

但是qDebug()<

qDebug()<

8int转QString

inta=10;

QStringb;

b=QString:

:

number(a)

9QString转int

QStringa="120"

intb;

b=a.toInt()

10char*与constchar*的转换

char*ch1="helloll";

constchar*ch2="hello22";

ch2=ch1;〃不报错,但有警告

chi=(char*)ch2;

11char转换为QString

其实方法有很多中,我用的是:

chara='b';

QStringstr;

str=QString(a);

12QString转换为char

方法也用很多中

QStringstr="abc";

char*ch;

ch=str.toLatin1.data();

13QByteArray转换为char*

char*ch;〃不要定义成ch[n];

QByteArraybyte;

ch=byte.data();

14char*转换为QByteArray

char*ch;

QByteArraybyte;

byte=QByteArray(ch);

15QString转换为QByteArray

QByteArraybyte;

QStringstring;

byte=string.toAscii();

16QByteArray转换为QString

QByteArraybyte;

QStringstring;

string=QString(byte);

这里再对这俩中类型的输出总结一下:

qDebug()<<"print";

qDebug()<

qDebug()<

qDebug()<

qDebug()<

qDebug()<

qDebug()<

但是qDebug()<

qDebug()<

17int转QString

inta=10;

QStringb;

b=QString:

:

number(a)

18QString转int

QStringa="120"

intb;

b=a.toInt()

1QString-->string

QString.toStdString();

2string-->QString

QString:

:

fromStdString(string)

3QString--->int,double,char*

QString:

:

tolnt()

QString:

:

toDouble()

QString.toStdString().c_str();

4intdoublechar*--->string

可以采用里的stringstream

以int为例,inta=3;

stringstreamss;

stringstrInt;

ss<

ss>>strInt;

其他两个一样。

5intdoublechar*转QString

一种方法可以先转string,再转QString。

另一种方法可以查看QString类的函数。

其一:

静态函数QStringnumber(doublen,charformat='g',intprecision=6)

其二:

非静态函数,需构造QString实例来调用的QString&setNum(doublen,char

format='g',intprecision=6)

QString:

:

number()这个静态函数,参数可以是int,也可以是double。

6doubleint的互转

可采用static_cast

5.2结构体类型转换

1)结构体转字符数组

structA

{

inta;

intb;

};

charbuf[100];

Aa={1,2};

memcpy(buf,&a,sizeof(A));

2)字符数组转结构体

5.3调色板使用

QPalette类有两个枚举类型,

枚举

1、ColorGroup

CorGroup指的是3中不同的状态(什么时候设置颜色):

1>Active:

获得焦点的状态。

2>lnactive:

未获得焦点的状态。

3>Disable:

不可用状态。

通常情况下,Active状态与Inactive状态下颜色显示是一致的,当然也可根据需要设置成不一样的颜色

2、ColorRole(设置什么颜色)。

ColorRole指的是颜色主题,即对窗体中不同部位颜色的分类,如QPalette:

:

Window是指背景色,QPalette:

:

WindowText指的是前景色等。

常用:

QPalete:

:

Window,通常指窗口部件的背景色;

QPalette:

WindowText,通常指窗口不见的前景色(QLabel也可以使用);

QPalette:

:

Base,指文本输入窗口部件(比如QTextEdit,QLinedit,QPIainTextEdit等)的

背景色

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->setAutoFillBackground(true);//设置背景

色为Palette:

:

Shadowui->label->setBackgroundRole(QPalette:

:

Shadow);ui->label2->setAutoFillBackground(true);

ui->label2->setBackgroundRole(QPalette:

:

Light)

5.3变长数组QVector

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2