QT提供了两个高级别的流类---QDataStream和QTextStream,可以从任意的输入输出设备读取或写入数据. QDataStream用于读写二进制数据,它的优点是:在读写数据的时候已经严格定义了数据流的类型和每个类型的长度,这样就不用关心编码之间转换的问题了. QTextStream用于读写文本(如HTML.XML和源代码等)的格式,解决了二进制文件格式无法直接阅读和编辑的缺点.QTextStream考虑了Unicode编码与系统本地编码或其他编码之间的转换问题,并考虑了不同操作系统…
QFile #ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: ); ~Widget(); private slots: void on_readButton_clicked(); void on_writeButton_clicked(); private: Ui::Widget…
1. QFile QDataStream 读写文件  二进制读写文件 #include <QApplication> #include <QtGui> #include <QtDebug> int main(int argc, char *argv[]) { QMap<QString, QColor> map; map.insert("red", Qt::red); map.insert("green", Qt::gr…
继上一篇文章介绍了Jayrock组件开发接口的具体步骤和优缺点之后,今天给大家带来的就是,如何修复这些缺点. 首先来回顾一下修复的缺点有哪些: 1.每个接口的只能写大概的注释,不能分开来写,如接口的主要功能,输入的参数是什么意思,输出的字段是什么意思. 2.测试页面中,针对每个接口的功能注释是没有的,这样非常不方便,因为接口一多,开发人员很难快速的定位要使用的接口. 3.测试页面中,选择的下拉框不能输入搜索,只能一个个选择,接口一多,绝对是个悲剧的活. 那么下面就展示我是如何修复这些缺点的: 1…
QDataStream in(&file); int n; in >> n ; file.close(); qDebug() << n<<"en" <<endl; 输出:1112355545 en QByteArray s; in >> s; file.close(); qDebug() <<s<<"en"<<endl; 输出:"" en…
最近发现从QDataStream向QByteArray中写入数据常常是写不进去的,通过查看QT的源码: QDataStream &operator>>(QDataStream &in, QByteArray &ba){ ba.clear(); quint32 len; in >> len; if (len == 0xffffffff) return in; const quint32 Step = 1024 * 1024; quint32 allocated…
  实际上,QT不仅仅是一个巨大的程序库,而是7个程序库,还包括许多使用工具,qmake是其中的一个.如今,术语GUI工具包代表的东西的用途不再仅仅是系统提供的那么一个小部分(GUI界面).尤其是QT,包含了用于应用程序开发的许多方面的扩展类.其中很多类与程序图形界面相关,但也有很多类涉及到网络编程,OpenGL支持,XML开发等方面.广泛的用途依赖于QT类的平台独立性:除了很少的例外,在所有的操作系统上,所有的类都可用,并且同样的类具有同样的方法和行为.   QT4包含下列程序库:QtCore…
这是我在知乎上遇到的一个问题: web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢? 首先这个提问本身就是有问题的, 没有哪个阶段是用工具实现的,每个阶段都是“人”用“工具”来“实现的”,每个阶段都需要“人“,也需要”工具”.   下面是我的原回答: 首先说分几个阶段:1.学习.了解产品2.计划/设计测试3.执行测试4.测试结果分析和报告 然后说工具,首先,每个阶段都可以使用工具,其次,每个阶段都需要人工介入,最后,强烈地指出,工具不可替代人…
1.参考网站:http://www.kavenblog.com/?p=272 2.下载插件:http://www.qt.io/zh-hans/download-open-source/#section-7 3.安装插件: 4.查看与配置 打开VS2010: QT5菜单项: 选择Qt Options 5.创建测试项目: OK,Test项目创建完成,具体如下: 我们编译一下项目: 1>—— 已启动生成: 项目: Test, 配置: Debug Win32 —— 1>生成启动时间为 2015/3/1…
简介 "我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流",不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的状态,来开始每一天的点滴分享,我们是一个有激情,有态度的部队. 但是我们还是我们,我们只是多了一份责任.古语有云:"不积跬步无以至千里,不积小流无以成江海",所以每一个伟大事务的产生都不是一蹴而就的.现在我们要立足眼下,把第一站放在地球,"<Qt 实战一二三>&quo…
使用Qt编写客户端的程序的示例或demo较多,但是编写服务器端程序的demo很少.当然,服务器端的程序一般不需要带界面,这点我们可以理解.不过有些时候我们还是需要使用Qt编写一个简单的测试用的服务器代码,这时候该怎么处理呢? 首先,头文件中需要做这两个对象:QTcpServer * serverListen;QTcpSocket *serverConnect; 其中,serverListen主要是用来监听的,这是QTcpServer类特有的一些功能.而serverConnect是和客户端程序一样…
Qt for windows7-64bit 在电脑上安装mingw(搜索mingw for windows),将C:\MinGW\bin添加进环境变量,打开命令行输入gcc --version和g++ --version和mingw32-make --version验证安装成功 解压qt-everywhere-opensource-src-4.8.1.tar.gz并进入目录 configure -debug-and-release -opensource -platform win32-g++…
最近要在QT下开发Tcp通讯,发送序列化数据以便于接收. 这里涉及到几个问题: 1.QTcpSocket.QTcpServer的通讯 2.QDataStream序列化数据 多的不说,直接上干货!!! 客户端: tcpclient.h #ifndef TCPCLIENT_H #define TCPCLIENT_H #include <QMainWindow> #include <qt4/Qt/qtcpsocket.h> #include <Qt/qhostinfo.h>…
在之前的文章中讲到了OpenGL鼠标拾取操作的例子,工作中需要在Qt中实现,下面的程序演示了QT中opengl的拾取例子. 本例子在Qt5.12和Qt Creator4.8.0上测试,使用的是QOpenGLWidget类,在窗口的正中央有红绿两个三角形组成一个正方形,分别点击不同的三角形部分进行对象拾取. 相关代码如下: opengl_widget.h 1234567891011121314151617181920212223242526272829303132333435363738   #i…
(一)工欲善其事,必先利其器,废话不多讲. 原文:http://www.cnblogs.com/zwq194/archive/2011/02/19/1958713.html 总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚:     1,首先明确需要下载什么版本的QT.网上流行的安装说明只是针对过去旧版本的QT,还有要求下载VS2008 SP1补丁的等等.很乱,对于刚接触Qt开发者会造成不必要的困扰,安装个开发环境真的需要那么繁琐和劳神吗.      2,对于环境变量的配置…
原文请看:http://www.cnblogs.com/ungshow/archive/2010/10/10/1847082.html 通常情况下,使用Qt开发应用都是采用动态编译的方式来进行发布,发布应用的时候就需要将相应的动态链接库文件一起发布了.应用依赖于哪些dll 文 件呢?一般来讲,有QtCore4.dll.QtGUI4.dll之类的了.但是,由于应用可能涉及到其它的模块,如网络模块等.可以查看一个.pro文 件了解应用具体涉及到哪些模块.还有一个办法是,如果安装了VC6,则可以使用d…
转载:http://blog.sina.com.cn/s/blog_c2b97b1d01016x1i.html 1.下载源码(前面已经提到了) 选择合适自己的源码. 先用"uname -a"看下系统信息: uname -a 2.解压缩文件 sudo tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz 我更改了下目录权限 sudo chmod -R 777 qt-everywhere-opensource-src-4.7.4 3.生成M…
Qt 学习之路 2(34):贪吃蛇游戏(4) 豆子 2012年12月30日 Qt 学习之路 2 73条评论 这将是我们这个稍大一些的示例程序的最后一部分.在本章中,我们将完成GameController中有关用户控制的相关代码. 首先,我们来给GameController添加一个事件过滤器:     bool GameController::eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::Key…
下载地址:http://download.qt.io/ 当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受 获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受 Qt for windows7-64bit 在电脑上安装mingw(搜索mingw for windows),将C:\MinGW\bin添加进环境变量,打开命令行输入gcc --version…
最近遇到一个朋友,问了我一个刁钻的问题,当你模态弹出一个窗体时,后台把这个窗体的父类给析构了,这个时候会出现什么样的情况? 听到问题后我真是一脸懵逼呀!从来没有这么写过代码. 随后写了一个简单的测试demo,跟踪了下Qt的源码,得出如下结论: 首先程序不会崩溃 模态窗口会被析构并关闭 带着这两个问题我们来研究下Qt的代码 1.测试代码 测试代码超级简单,就是当我们的模态窗体弹出时,使用定时器10s后析构了其父类obj对象 QPushButton * obj = new QPushButton;…
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/wsj18808050/article/details/51603006在GUN标准中,提供了__thread关键字,配合static后,可以实现让一个线程拥有自己的全局变量. 我对__thread进行了简单的封装,可以用于存储class.并且防止了内存泄露(如果使用Qt线程类). 测试中,我一共开启了两个线程,从输出可以得知每个线程都拥有…
绘制过多点的曲线意义重大.但通过试验,QT的PainterPath不是很如意.当多段曲线围成一个区域时,PainterPath内并不包含该区域的所有面积,只包含曲线和其弦构成的面积. 为了解决这一问题,采用如下方法: 1. 生成自己的bezier曲线点集 2. 将多个bezier曲线头尾相联,形成整个polygon的点集 3. 将这个polygon放入一个PainterPath,然后绘制: 4. 这个PainterPath返回留待下次使用. 下面是代码: 1. 头文件graphic.h #ifn…
小伙伴们,大家好,小北师兄又来喂饭啦,从上次写完<一个例子让你秒懂 Qt Creator 编译原理>后,师兄对于 Qt 的一些环境配置有了更深的理解,这对师兄进行 Qt 的后续学习起到了很大的促进作用. 文章首发于微信公众号 小北师兄,里面还有更多精彩内容值得你们拥有! 师兄除了工作时间外就在进行 Qt 的基础学习,说来也巧,师兄自学过程中一直在使用 Qt Creator 这个开发环境,从没有想过使用 Visual Studio 这个庞然大物.结果在学习 Qt 插件的时候就间接涉及到了 Vis…
Tips Link 作业链接 [2019BUAA软件工程]结对作业 GitHub地址 WordChain PSP表格 psp2.1   预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 40 . Estimate · 估计这个任务需要多少时间 900 1200 Development 开发 700 900 . Analysis · 需求分析 (包括学习新技术) 60 60 . Design Spec · 生成设计文档 100 120 .Design Review · 设计复审 (…
背景简介 在软件开发领域,持续集成和部署对于软件测试自动化提出了越来越高的要求,基于 Eclipse 应用在这一需求中仍然占据重要的组成部分.目前主流的测试自动化工具主要以录制回放的功能为主,辅助以脚本的方式实现.然而,基于此的测试方法往往具有测试用例维护复杂,测试过程容易失败的问题,这直接影响了测试效率.SWTBot 作为 Eclipse 官网推荐的自动化测试工具,提供了专业的类库以及扩展点,在 Eclipse 应用的自动化测试中具有先天的优势. SWTBot 是基于 Eclipse SWT…
这里主要讲linux下的编译,windows下面比较简单 参考:http://qt-project.org/wiki/Building-Qt-5-from-Git 依赖 sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev 编译选项 configure -confirm-license -opensource -static -release -no-qml-d…
接前一篇C++ ABI之名字改编(以Qt为例),继续看看C++名字改编相关的问题. 问题 MSVC 有一对选项/Zc:wchar_t- 与 /Zc:wchar_t控制wchar_t 于是 wchar_t 可以是 unsigned short 或 __wchar_t(称为原生类型?) 的别名 两个东西混用会怎么样? 首先考虑,会混用么?,是杞人忧天么? 由于 Qt 为 MSVC 提供的二进制包采用的前者/Zc:wchar_t-.考虑: 如果你编译自己的Qt程序时,启用了后者,会怎么样? 如果Qt程…
版权声明:本文为博主原创文章,未经博主允许不得转载. 在上一节分析输入子系统内的intput_handler软件处理部分后,接下来我们开始写input_dev驱动 本节目标: 实现键盘驱动,让开发板的4个按键代表键盘中的L.S.空格键.回车键 1.先来介绍以下几个结构体使用和函数,下面代码中会用到 1)input_dev驱动设备结构体中常用成员如下: struct input_dev { void *private; const char *name; //设备名字 const char *ph…
1.编写一个计算图形面积的程序,程序应当能够计算并输出矩形.圆的面积.考虑到程序的未来扩展,设计一个接口ShapeInterface,在此基础上设计实现类Rectangle(矩形类)和Circle(圆形 类),具体要求如下: (1)Rectangle 类基本信息:宽度.高度. (2)Cirlce 类基本信息:半径. (3)每个图形类有多个构造方法:空构造方法.带参数的构造方法:成员变量使用private 修饰,成员方法是用public 修饰. (4)每个图形类有计算图形面积getArea()方法…
在上一节分析输入子系统内的intput_handler软件处理部分后,接下来我们开始写input_dev驱动 本节目标: 实现键盘驱动,让开发板的4个按键代表键盘中的L.S.空格键.回车键 1.先来介绍以下几个结构体使用和函数,下面代码中会用到 1)input_dev驱动设备结构体中常用成员如下: struct input_dev { void *private; const char *name; //设备名字 const char *phys; //文件路径,比如 input/buttons…