QT编程实用大全.doc
- 文档编号:231752
- 上传时间:2022-10-07
- 格式:DOC
- 页数:43
- 大小:112KB
QT编程实用大全.doc
《QT编程实用大全.doc》由会员分享,可在线阅读,更多相关《QT编程实用大全.doc(43页珍藏版)》请在冰豆网上搜索。
QT编程实用大全
认真学,没有学不会!
1.类定义后面要加”;”
2.函数的实现部分,如果定义部分有void,则实现部分不能少;
检查include文件有无少;
error:
requestformember`show’in`((MainWindow*)this)->MainWindow:
:
rightform’,whichisofnon-classtype`RightForm*’|
“->”与”.”问题
函数”()”千万不能少;
connect中的SLOT里的自定义过程的申明一定要写在privateslots:
(或publicslots:
)下
QTableWidgetItem*newItemName=newQTableWidgetItem(tr(“姓名”));
newItemName->setFlags(newItemName->flags()&(~Qt:
:
ItemIsEditable));//网格设置为只读
tblWidgetMingPian->setItem(0,0,newItemName);
newItemName=newQTableWidgetItem(tr(“陈林
&(~Qt:
:
ItemIsEditable));
tblWidgetMingPian->setItem(0,1,newItemName);
tblWidgetMingPian->verticalHeader()->hide();
tblWidgetMingPian->horizontalHeader()->hide();
tblWidgetMingPian->setRowHeight(0,25);
tblWidgetMingPian->setRowHeight(1,25);
tblWidgetMingPian->setRowCount
(2);connsql.h
tblWidgetMingPian->setColumnWidth(0,60);
tblWidgetMingPian->setColumnWidth(1,100);
if里面的语句要加括号if(条件)
枚举类型的定义:
typedefenum{
nil,
ready,
fired,
exceptional
}Status;
QStringtext=tr(“%1%2″).arg(i+1).arg(files[i]);
Error:
ISOC++forbidsdeclarationof`NavItem’withnotype
如果出现以上的错误,其中NavItem是自定义类,则需检查有没Include进此类的定义头文件,
并检查头文件的#ifndef中的名称跟其他类有没重复(在复制其它类生成新类时经常会出现这样的错误)
=====================================================================================
\mingw\lib\libmingw32.a(main.o):
main.c:
(.text+0×104)||undefinedreferenceto`WinMain@16′|
往pro文件按顺序加入下面三行:
-lmingw32\
-lSDLmain\
-lSDL\
sdl库中文件(sdl.h)里将#include“SDLMain.h”注释掉,否则qDebug(),printf全部无法显示
有可能使用#pragmamessage()造成,方法:
不使用#pragmamessage()
另:
请检查pro文件里有没INCLUDE入main.cpp
========================================================================
cannotopenoutputfiledebug\umpcphonegui.exe:
Permissiondenied
产生此问题是由于文件umpcphonegui.exe受到保护,写不进去,打开任务管理器结束掉此进程就好了
========================================================
pages.h|16|error:
expectedclass-namebefore‘{‘token|
||===Buildfinished:
1errors,0warnings===|
处理方法:
没有include进所需的类
链接时提示”"undefindreferenceto‘vtableforxxx’错误的处理方法:
重新makefile试下或
工程文件(.pro)中的HEADERS中没有加入定义该类的.h文件;另一原因,虚函数(或调用的虚函数)定义后没有加”=0″;
intx,y;
setupUi(this);
this->move(10,60);
this->resize(338,568);
x=this->x()+this->frameGeometry().width();
y=this->y()+20;
//showMaximized();
rightform=newRightForm;
rightform->move(x,y);
ERROR:
undefinedreferenceto`RightGpsForm:
:
RightGpsForm(QWidget*)
工程文件(*.pro)文件中的Source没有加入RightGpsForm类实现的.cpp文件
头部定义有误,需检查头部名称跟文件名是否一样;
尝试重编译
error:
ISOC++forbidsdeclarationof`GPSMainWindow’withnotype|
类的定义GPSMainWindow(gpsmainwindow.h)中的
#ifndefMAINWINDOW_H_INCLUDED
#defineMAINWINDOW_H_INCLUDED
头部定义有误,需检查头部名称跟文件名是否一样;
#include
QList:
Nosuchfileordirectory
解决方法:
Project-buildoptions-选择整个工程(左侧第一项)–切到右边的页”Searchdirectories”
增加”$(#qt4.include)\QtGui\QtCore”
QT中的目录用”/”表示
应用程序目录:
QCoreApplication:
:
applicationDirPath().append(tr(“/world.png”));
=========================
QSS:
设置TabWidget中的Tab页高度
QTabBar:
:
tab{
height:
14ex;
width:
14ex;
}
======================
TRACE_SUBSYSF(MYRUNLEVEL,MYMODULENAME,QString(QObject:
:
tr(“测试数据”))<<10);
TRACE_LEVEL=5TRACE_SUBSYS=MAIN/d/study/umpcapp/umpcapp-dev-1.0.0/gpsapp/deb
ug/gpsapp.exe
TRACE_SUBSYSF(5,”GUIAPP”,QString(QObject:
:
tr(“构造函数创建完毕”))<<10);
TRACE_SUBSYSF(5,”GUIAPP”,tr(“构造函数创建完毕”)<<10);
intret=QMessageBox:
:
question(this,tr(“提示”),
tr(“确定要删除文件吗?
”),
QMessageBox:
:
Yes|QMessageBox:
:
No,
QMessageBox:
:
No);
引用Dll文件(动态链接”qextserialport.dll”)时,需在pro里加下面的语句,-l+dll文件名
LIBS+=-lqextserialport
//
//listWidget->addItem(“a”);
//listWidget->addItem(“b”);
//QVariantvar;
//var.setValue(newint(789098));
//
//listWidget->item(0)->setData(Qt:
:
UserRole,var);
//
//int*ptr=listWidget->item(0)->data(Qt:
:
UserRole).value
//qDebug()<<“RecentNoteListForm:
:
RecentNoteListForm:
”<<*ptr< //deleteptr; //delete&listWidget->item(0)->data(Qt: : UserRole); 删ITEM方法: 把把ITEM的数据挂到指针上,先删ITEM,然后再删除指针 如果发生nosuchfileordirectorynotfind(报QT核心文件错) 有可能是project–properties–projectssettings中的”ThisisacustomMakeFile”没有勾选; 检查.pro文件是INCLUDEPATH+=DEPENDPATH+=有没加入文件所在的目录 检查.pro文件是否引入两个版本不同的相同文件名的文件; Qt+=GUI ============================================ 枚举类型做为信号的参数,则需对枚举类型进行注册 在include中 //定义Enum typedefenum{ ProgressType, StartType, SuccessType, StopType }SyncMsgType; //定义结构 typedefstruct//实际使用中可以多增加些结构成员 { SyncMsgTypemsgtype; }SyncMsg; Q_DECLARE_METATYPE(SyncMsg) 在应用程序.CPP中 //连接之前再注册 qRegisterMetaType connect(gpssyncthread,SIGNAL(syncMsgNotify(SyncMsg)), this,SLOT(syncMsgEvent(SyncMsg))); ======================================== QList for(QList : iteratorit=listItemDatas.begin();it! =listItemDatas.end();++it) { (*it)->colName; } ================== error: multipletypesinonedeclaration 自定义的类{}后面没有”;” 还有一种可能是pro文件中引用了两次单元文件; 重编译方法 ===================================== e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QT 编程 实用 大全