QT开发实战精解
无法打开包括文件<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()的宏定义:
- #ifndef QT_NO_DEBUG
- # define QLOCATION "\0"__FILE__":"QTOSTRING(__LINE__)
- # define METHOD(a) qFlagLocation("0"#a QLOCATION)
- # define SLOT(a) qFlagLocation("1"#a QLOCATION)
- # define SIGNAL(a) qFlagLocation("2"#a QLOCATION)
- #else
- # define METHOD(a) "0"#a
- # define SLOT(a) "1"#a
- # define SIGNAL(a) "2"#a
- #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开发实战精解的更多相关文章
- 《Cocos2d-x游戏开发实战精解》学习笔记4--实战一个简单的钢琴
上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记1--在Cocos2d中显示图像
Cocos2d-x中的图像是通过精灵类来显示的.在Cocos2d-x中游戏中的每一个角色.怪物.道具都可以理解成是一个精灵,游戏背景作为一种特殊的单位将其理解成是一个精灵也没有什么不妥.在源文件本章目 ...
- [Qt及Qt Quick开发实战精解] 第1章 多文档编辑器
这一章的例子是对<Qt Creator快速人门>基础应用篇各章节知识的综合应用, 也是一个规范的实例程序.之所以说其规范,是因为在这个程序中,我们对菜单什么时候可用/什么时候不可用.关 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记2--在Cocos2d-x中显示一行文字
在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而 ...
- 《React 与 Redux 开发实例精解》出版了!
<React 与 Redux 开发实例精解>出版了! <React 与 Redux 开发实例精解>出版了! 关于 React 与 Redux React 与 Redux, 一个 ...
- 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING
<Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th 2014 Email:skyseraph00@163.com 更多精彩请直接 ...
- 《Node.js开发实战详解》学习笔记
<Node.js开发实战详解>学习笔记 ——持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...
- 《iOS 7 应用开发实战详解》
<iOS 7 应用开发实战详解> 基本信息 作者: 朱元波 管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5 ...
随机推荐
- 一款查看mysql QPS的脚本
本脚本黏贴就可以使用绝对不坑人!!! (此脚本来源如一位大神网友) 执行效果: 脚本: #!/bin/bashPW=Eqipay20150504@mysqladmin -P3306 -uroot -p ...
- lightetreeview
http://www.16css.com/menu/905.html 其他树形菜单:很好--1.http://www.cnblogs.com/zhhh/archive/2011/11/25/22637 ...
- ob_clean()
我在本地写的系统,部署到虚拟机上的时候,验证码出现问题不显示.加上这个函数之后,验证码出现了.具体的该学习去了.
- PHP如何通过SQL语句将数据写入MySQL数据库呢?
1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...
- windows下vim 块模式问题
VIM: gvim 使用 Ctrl+V 發表於 2005 年 10 月 27 日 由 Tsung vim 要做垂直選取的動作, 就要使用 "Ctrl + v", 但是 gvim 會 ...
- 网页FLASH幻灯片播放带链接源代码 pixviewer.swf使用(转)
<script type="text/javascript"> <!-- var focus_width=360 var focus_height=270 ...
- Sharepoint 2013 网站集的删除与还原
一.可以通过三种方法删除网站集: 1.打开Sharepoint 2013 管理页面首页 ---> 单击‘应用程序管理(Application Management)’并进入该页面 ---> ...
- 转载自~浮云比翼:Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)
Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥) 介绍:什么是线程,线程的优点是什么 线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可 ...
- JS判断终端设备跳转PC端、移动端相应的URL
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta nam ...
- JS中的_proto_(2)
function God(){} function Foo(){ this.name="Foo~~"; } Foo.prototype = new God(); function ...