本人介绍的是Qt 编程点滴,作为一名新手,我建议必须看一看。编程那些事,只有编程人员自己明白!所以推荐本文。

Qt 编程点滴,为大家讲解编程那些细节。通过题目,不难看出,本文讲述的就是在编程过程中的点点滴滴,如果你是Qt爱好者,或者是小白,建议你关注此文章。不多说了,先看看本文吧。

Qt 编程点滴 初学者必看 (1)(qt编程入门)  第1张

MinGw + CodeBlock + Qt 4.5

类定义后面要加";"

函数的实现部分,如果定义部分有void,则实现部分不能少;

检查include文件有无少;

error: request for member `show\\\' in `((MainWindow*)this)->MainWindow::rightform\\\', which is of non-class type `RightForm*\\\'|
"->"与"."问题函数"()"千万不能少;

connect中的SLOT里的自定义过程的申明一定要写在private slots:(或public slots:)下

  1. QtableWidgetItem*newnewItemName=newQtableWidgetItem(tr("姓名"));
  2. newItemName->setFlags(newItemName->flags()&(~Qt::ItemIsEditable));//网格设置为只读
  3. tblWidgetMingPian->setItem(0,0,newItemName);
  4. newnewItemName=newQtableWidgetItem(tr("陈林&(~Qt::ItemIsEditable));
  5. tblWidgetMingPian->setItem(0,1,newItemName);
  6. idgetMingPian->verticalHeader()->hide();
  7. tblWidgetMingPian->horizontalHeader()->hide();
  8. tblWidgetMingPian->setRowHeight(0,25);
  9. tblWidgetMingPian->setRowHeight(1,25);
  10. tblWidgetMingPian->setRowCount(2);connsql.h
  11. tblWidgetMingPian->setColumnWidth(0,60);
  12. tblWidgetMingPian->setColumnWidth(1,100);



if 里面的语句要加括号 if (条件),枚举类型的定义

  1. typedefenum{
  2. nil,
  3. ready,
  4. fired,
  5. exceptional
  6. }Status;
  1. QStringtext=tr("%1%2").arg(i+1).arg(files[i]);
  2. Error:ISOC++forbidsdeclarationof`NavItem\\\'withnotype

如果出现以上的错误,其中NavItem是自定义类,则需检查有没Include进此类的定义头文件,并检查头文件的#ifndef中的名称跟其他类有没重复(在复制其它类生成新类时经常会出现这样的错误)

\mingw\lib\libmingw32.a(main.o):main.c:(.text+0x104)||undefined reference to `WinMain@16\\\'|

往pro文件按顺序加入下面三行:

  1. -lmingw32\
  2. -lSDLmain\
  3. -lSDL\

sdl库中文件(sdl.h)里将 #include "SDLMain.h" 注释掉,否则qDebug(),printf全部无法显示

有可能使用 #pragma message()造成,方法:不使用#pragma message()

  1. cannotopenoutputfiledebug\umpcphonegui.exe:Permissiondenied

产生此问题是由于文件umpcphonegui.exe受到保护,写不进去,打开任务管理器结束掉此进程就好了

  1. pages.h|16|error:expectedclass-namebefore\\\'{\\\'token|
  2. ||===Buildfinished:1errors,0warnings===|

处理方法:没有include进所需的类

链接时提示""undefind reference to \\\'vtable for xxx\\\'错误的处理方法: 重新makefile试下或工程文件(.pro)中的HEADERS中没有加入定义该类的.h文件;另一原因,虚函数(或调用的虚函数)定义后没有加"=0";

  1. intx,y;
  2. setupUi(this);
  3. this->move(10,60);
  4. this->resize(338,568);
  5. x=this->x()+this->frameGeometry().width();
  6. y=this->y()+20;
  7. //showMaximized();
  8. rightform=newRightForm;
  9. rightform->move(x,y);

ERROR:undefined reference to `RightGpsForm::RightGpsForm(QWidget*)工程文件(*.pro)文件中的Source没有加入RightGpsForm类实现的.cpp文件头部定义有误,需检查头部名称跟文件名是否一样;尝试重编译

  1. error:ISOC++forbidsdeclarationof`GPSMainWindow\\\'withnotype|

类的定义GPSMainWindow(gpsmainwindow.h)中的

  1. #ifndefMAINWINDOW_H_INCLUDED
  2. #defineMAINWINDOW_H_INCLUDED

头部定义有误,需检查头部名称跟文件名是否一样;

#include 时,提示下面的错误:

  1. QList:Nosuchfileordirectory

解决方法:

Project-build options-选择整个工程(左侧第一项)--切到右边的页"Search directories"

  1. typedefenum{
  2. nil,
  3. ready,
  4. fired,
  5. exceptional
  6. }Status;
0

Qt中的目录用"/"表示

应用程序目录:QCoreApplication::applicationDirPath().append(tr("/world.png"));

QSS:设置TabWidget中的Tab页高度

  1. typedefenum{
  2. nil,
  3. ready,
  4. fired,
  5. exceptional
  6. }Status;
1

tr("确定要删除文件吗?"),

  1. typedefenum{
  2. nil,
  3. ready,
  4. fired,
  5. exceptional
  6. }Status;
2

引用Dll文件(动态链接"qextserialport.dll")时,需在pro里加下面的语句, -l+dll文件名

  1. typedefenum{
  2. nil,
  3. ready,
  4. fired,
  5. exceptional
  6. }Status;
3

小结:通过Qt 编程点滴 介绍,也给自己提高了编程过程中需要注意的细节问题,更多内容,请看编辑推荐。

转载请说明出处
知优网 » Qt 编程点滴 初学者必看 (1)(qt编程入门)

发表评论

您需要后才能发表评论