无法打开包括文件<QApplication> No such file or directory  这一问题

解决办法,使用QApplication时必须在项目pro文件中添加一句

QT += widgets

注意添加之后先qmake一下,然后再构建一下即可。

且发现一些类似的问题,比如

无法打开包括文件<QGraphicsObject> No such file or directory  等问题都可以用此方法解决。

QT的connect函数(具体参见收藏的博客内容)
static bool connect(const QObject *sender, const char *signal,
const QObject *receiver, const char *member, Qt::ConnectionType =
#ifdef qdoc
Qt::AutoConnection
#else
#ifdef QT3_SUPPORT
Qt::AutoCompatConnection
#else
Qt::AutoConnection
#endif
#endif
);

我们在使用connect函数的时候一般是这样调用的:

  connect(sender,SIGNAL(signal()),receiver,SLOT(slot()));


这里用到了两个宏:SIGNAL() 和SLOT();通过connect声明可以知道这两个宏最后倒是得到一个const char*类型。
在qobjectdefs.h中可以看到SIGNAL() 和SLOT()的宏定义:

  1. #ifndef QT_NO_DEBUG
  2. # define QLOCATION "\0"__FILE__":"QTOSTRING(__LINE__)
  3. # define METHOD(a)   qFlagLocation("0"#a QLOCATION)
  4. # define SLOT(a)     qFlagLocation("1"#a QLOCATION)
  5. # define SIGNAL(a)   qFlagLocation("2"#a QLOCATION)
  6. #else
  7. # define METHOD(a)   "0"#a
  8. # define SLOT(a)     "1"#a
  9. # define SIGNAL(a)   "2"#a
  10. #endif

所以这两个宏的作用就是把函数名转换为字符串并且在前面加上标识符。

因此connect函数实际上就是connect(sender,“2signal()”,receiver,“1slot()”);

下载了俄罗斯方块的源码,竟然不能直接选择添加到项目中,只有先新建文件,然后将对应的源码复制过来。

添加资源时,开始直接复制myImages.qrc到项目,里面的图标无法打开;然后图标在image文件夹,将文件夹复制到项目文件,并将里面的图片添加到项目,成功打开图片。

(但是我自己还不知道怎么根据图片素材来生成myImages.qrc文件)很简单!

书上说添加新C++类MyView,基类为QGraphicsView,类型信息选择“继承自QWidget”,但是我的添加界面是这样的:

基类选项中并没有“QGraphicsView”,另外也没有类型信息选择。

原来shape()是都需要的,返回一个QPainterPath对象,同样有用于检测碰撞的函数。

第5章聊天工具,TCP服务器端在点发送按钮后,用UDP发送一个sendFileName,使用了emit

emit sendFileName(theFileName);

(为什么可以直接这样调用UDP的函数,那这些是全局函数?)

因此,可能是客户端在收到后,发起TCP请求,连接服务器端,然后服务器端开始发送文件。

QT的TCP客户端

在client.h中,有:

QTcpSocket *tcpClient;
quint16 blockSize;
QHostAddress hostAddress;
qint16 tcpPort;

在client.cpp中,有:

void TcpClient::newConnect()
{
blockSize = ;
tcpClient->abort();
tcpClient->connectToHost(hostAddress,tcpPort);
time.start();
}

因此很容易知道怎么发起一个TCP客户端连接了。

QT的TCP服务器端

qint16 tcpPort;
QTcpServer *tcpServer;
if(!tcpServer->listen(QHostAddress::Any,tcpPort))//开始监听
不明白书本上这个例子中:
tcpServer->close();//为什么在initServer里要首先close tcpServer

QT开发实战精解的更多相关文章

  1. 《Cocos2d-x游戏开发实战精解》学习笔记4--实战一个简单的钢琴

    上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学 ...

  2. 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音

    <Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...

  3. 《Cocos2d-x游戏开发实战精解》学习笔记1--在Cocos2d中显示图像

    Cocos2d-x中的图像是通过精灵类来显示的.在Cocos2d-x中游戏中的每一个角色.怪物.道具都可以理解成是一个精灵,游戏背景作为一种特殊的单位将其理解成是一个精灵也没有什么不妥.在源文件本章目 ...

  4. [Qt及Qt Quick开发实战精解] 第1章 多文档编辑器

      这一章的例子是对<Qt Creator快速人门>基础应用篇各章节知识的综合应用, 也是一个规范的实例程序.之所以说其规范,是因为在这个程序中,我们对菜单什么时候可用/什么时候不可用.关 ...

  5. 《Cocos2d-x游戏开发实战精解》学习笔记2--在Cocos2d-x中显示一行文字

    在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而 ...

  6. 《React 与 Redux 开发实例精解》出版了!

    <React 与 Redux 开发实例精解>出版了! <React 与 Redux 开发实例精解>出版了! 关于 React 与 Redux React 与 Redux, 一个 ...

  7. 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING

    <Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th  2014 Email:skyseraph00@163.com 更多精彩请直接 ...

  8. 《Node.js开发实战详解》学习笔记

    <Node.js开发实战详解>学习笔记 ——持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...

  9. 《iOS 7 应用开发实战详解》

    <iOS 7 应用开发实战详解> 基本信息 作者: 朱元波    管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5 ...

随机推荐

  1. Window.onload与$(document).ready()的对比

  2. 【HDU2196 Computer】经典树形dp

    http://acm.hdu.edu.cn/showproblem.php?pid=2196 题意:有n台电脑相连,让你求每台电脑与离它最远的那台电脑的距离. 思路:两遍搜索即可,第一遍从上到下,第二 ...

  3. 求最大连续bit数

    描述 功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1    输入: 一个byte型的数字    输出: 无     返回: 对应的二进制数 ...

  4. Xtrabackup2.3.4安装

    安装过程种有很多报错,这里我就不一一解释. wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.5/bin ...

  5. PHPExcel创建文件格式写入对象实例

    首先到http://www.codeplex.com/PHPExcel下载PHPExcel 下面就是php导出excel的程序 <?phpini_set("display_errors ...

  6. 20145337实验五Java网络编程及安全

    20145337实验五Java网络编程及安全 实验内容 掌握Socket程序的编写 掌握密码技术的使用 设计安全传输系统 实验步骤 基于Java Socket实现安全传输 基于TCP实现客户端和服务器 ...

  7. 网站部署后Parser Error Message: Could not load type 的解决方案

    asp.net 的Webproject 项目是在64bit机上开发,默认选项发布后,部署到32bit的服务器上,出现Parser Error Message: Could not load type的 ...

  8. IOS第三天

    第三天 ******** 九宫格代码的现实 @interface HMViewController () /** 应用程序列表 */ @property (nonatomic, strong) NSA ...

  9. Java程序设计 实验三

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计   班级:1353       姓名:李海空  学号:20135329 成绩:             指 ...

  10. jquery 判断时间

    $("#gjlycon1").blur(function () {                 var v = $(this).val();                 v ...