- 博客(42)
- 资源 (8)
- 收藏
- 关注
原创 “真相”重要吗?
这是一篇个人思索的鸡汤,并不想表达什么观点,只是因为有了要写的冲动才写的。言归正传,我认为——真相很重要。周末回老家看了一岁半儿子,从国庆送回老家已经一个半月了。周日下午我临走时,他自己在卧室玩,然后突然出来拉我,进去后他指着我的行李箱,我看到行李箱一个拉链是拉开的,我以为是他拉着玩拉开的,然后就顺手拉上,然后把行李箱弄出来让他自己推着玩。晚上回到家里,打开行李箱,发现里面有一支笔。我顿时...
2018-11-19 21:03:06 728
原创 C++子类的构造函数后面加:冒号的作用
在C++类的构造函数中经常会看到如下格式的写法:MyWindow::MyWindow(QWidget* parent , Qt::WindowFlags flag) : QMainWindow(parent,flag)上述语句中单冒号(:)的作用是表示后面是初始化列表,一般有三种使用场景。1、对父类进行初始化调用格式为“子类构造函数 : 父类构造函数”,如下,其中QMainWin...
2018-11-12 13:11:09 49264 5
原创 WinRAR 5.5 简体中文版去广告弹窗方法
WinRAR 5.5 简体中文版去广告弹窗方法1.下载WinRAR 5.5WinRAR官网(http://www.rarlab.com)2.下载 Resource Hacker.3.用压缩软件打开WinRAR安装包,提取 WinRAR.exe4.打开Resource Hacker,点击菜单,点击打开,浏览刚才提取出来的WinRAR.exe,浏览到后点击打开。展开"字串表
2018-01-28 14:40:28 15221 11
原创 C++ GUI Programming with Qt4 Second Edition 之 附录C.1 Qt Jambi入门
Qt Jambi入门 本节,我们将开发一个简单的Java应用程序并显示如图C.1所示的窗口。除窗口标题之外,Jambi Find对话框与第二章中创建的Find对话框的外观和功能均相同。通过使用相同的例子,可以更容易地看出C++/Qt和Qt Jambi编程中的不同点和相同点。在讲解代码的同时,我们也会介绍出现的C++和Java概念上的区别。图C.1 Jambi Find对话
2017-11-08 19:10:51 1638
原创 C++ GUI Programming with Qt4 Second Edition 之 附录C Qt Jambi简介
附录C Qt Jambi简介C.1 Qt Jambi入门C.2 在Eclipse IDE中使用Qt JambiC.3 在Qt Jambi中集成C++组件 Qt Jambi是Qt应用程序开发框架的Java版本。Qt Jambi的核心是构成Qt的C++库,Java程序员通过Java本地接口(JNI)使用它。尽管已经付出了很大努力,以使Qt Jambi和Java的集成更加
2017-10-29 20:10:56 637
原创 C++ GUI Programming with Qt4 Second Edition 之 B.2 使用第三方编译工具
本节,我们将学习三种工具,它们对Qt提供内置支持,获取方便,使用简单。其中一个是CMake,用于生成makefile文件;另外两个是Boost.Build和SCons,它们都是独立的编译系统。我们将分别演示使用这三个工具编译第三章和第四章开发的Spreadsheet软件的过程方法。虽然评估任何新的编译工具或编译系统都需要详细的研读以及实际软件的开发试验,但我们仍希望本章简短的介绍能够为各位选择工具提供参考。
2017-10-26 16:58:59 389
原创 C++ GUI Programming with Qt4 Second Edition 之 B.1 使用qmake
qmake工具是Qt提供的。它用来编译Qt本身,以及Qt附带的工具和示例。本书中,我们使用qmake工程文件(.pro文件)生成示例程序和插件。本节,我们将更系统地讲解.pro文件的语法(尽管并不全面)以及一些基本的qmake概念。更加全面的介绍请参阅qmake手册,本手册可在http://doc.trolltech.com/4.3/qmake-manual
2017-10-25 21:51:34 405
原创 C++ GUI Programming with Qt4 Second Edition 之 附录B 编译Qt应用程序
使用编译工具可以大大简化Qt应用程序的编译过程。有三种编译途径可选:使用Qt提供的qmake工具;使用第三方编译工具;使用集成开发环境(IDE)。qmake工具可以使用平台无关的.pro文件生成平台相关的makefile文件。该工具包含了调用Qt内置的代码生成工具(moc、uic和rcc)所必需的逻辑规则。本书示例中使用qmake编译的.pro文件,大都相对简单。实际上,qmake提供了很丰富的功能,包括创建可以递归调用其他makefile的makefile文件;根据目标平台打开或关闭某些特定功能。在本附录
2017-10-23 22:01:54 321
原创 C++ GUI Programming with Qt4 Second Edition 之 附录A.4 X11系统Qt的安装
A.4 X11系统Qt的安装 在奇趣科技网站下载qt-x11-opensource-src-4.3.2.tar.gz(http://download.qt.io/archive/qt/4.3/),同理该版本是本书编写时使用的版本,你读本书时版本可能不同。如果希望在X11的默认路径安装Qt,你需要切换到root用户。如果你没有root权限,使用configure的-prefix选项切换
2017-10-20 15:37:23 503
原创 C++ GUI Programming with Qt4 Second Edition 之 附录A.3 Mac系统Qt的安装
A.3 Mac系统Qt的安装 在Mac OS X系统上安装Qt之前,必须先安装Apple的Xcode Tools工具包。一般情况下,同Mac OS X的系统安装盘一并提供的CD(或DVD)中会包含这些工具包,你也可以在Apple Developer Connection(http://developer.apple.com/)下载这些工具包。 如果你安装的是Mac OS
2017-10-20 15:30:55 546
原创 C++ GUI Programming with Qt4 Second Edition 之 附录A.2 Windows系统Qt的安装
A.2 Windows系统Qt的安装 在本书编写时,Windows平台的Qt安装包是qt-win-opensource-4.3.2-mingw.exe(http://download.qt.io/archive/qt/4.3/)。在你阅读本书时,版本号可能已经不同了,但安装过程应该是一致的。下载并运行安装文件,即可开始安装过程。 安装程序到“MinGW”页时,如果你
2017-10-20 15:23:04 363
原创 C++ GUI Programming with Qt4 Second Edition 之 附录A.1 许可协议说明
第四部分附录附录A Qt的获取和安装A.1 许可协议说明A.2 Windows系统Qt的安装A.3 Mac系统Qt的安装A.4 X11系统Qt的安装 本附录说明如何获取并在你的系统中安装GPL版本的Qt。这些版本可用于Windows、Mac OS X、X11(Linux和Unix的大多数版本)。Windows和MacOS X的预编译库包含SQLite(一个公
2017-10-17 19:03:23 465
原创 C++ GUI Programming with Qt4 Second Edition 之 Qt简史
Qt简史 1995年5月,Qt开发框架首次公开发布。Qt最初由Haavard Nord(奇趣科技CEO)和Eirik Chambe-Eng(奇趣科技总裁)设计开发。Haavard和Eirik相识于Trondheim的挪威科技学院,这也是他们获得计算机科学硕士学位的地方。 1988年,一家瑞典公司委派Haavard开发一套C++的用户界面框架,从此,Haavard对C++
2017-10-14 20:54:36 970
原创 C++ GUI Programming with Qt4 Second Edition 之 鸣谢
鸣谢 首先要感谢Eirik Chambe-Eng,他是奇趣科技的总裁,同时也是两个创始人之一。Eirik不仅热心地鼓励我们编写本书的Qt 3版本,还允许我们占用大量工作时间来进行写作。Eirik和奇趣科技CEO——Haavard Nord都阅读了本书手稿并提出了很多宝贵意见。他们的慷慨和远见来源于Matthias Ettrich。Matthias Ettrich不仅欣然接受了我们由于
2017-10-12 21:33:25 412
原创 C++ GUI Programming with Qt4 Second Edition 之 引语
引语 Qt通过“一次编写,处处编译”的方法,为开发跨平台的图形用户界面软件提供了一个综合全面的C++程序开发架构。Qt让程序员能够使用一套源码生成可以运行于多个平台的应用程序,如Windows 98、Vista、MacOS X、Linux、Solaris、HP-UX以及X11的许多其他Uinx版本。Qt的函数库和工具也都是Qt/Embedded Linux的一部分,其中Qt/
2017-10-11 21:30:27 628
原创 C++ GUI Programming with Qt4 Second Edition 之 前言
前言 为什么是Qt?为什么像我们这样的程序员选择Qt?当然,这里有几个主要原因: Qt单一源码的兼容性(即跨平台特性)、它特点丰富、它的C++性能、源码的可用性、它完善的文档、高质量的技术支持以及奇趣科技在它的营销材料中提到的所有其他项目。这已经很好了,但却忽略了最重要的一点:Qt之所以成功是因为程序员喜欢它。 为什么程序员喜欢一项技术,而不喜欢另一项?就个人而言,我认
2017-10-10 22:17:51 277
原创 C++ GUI Programming with Qt4 Second Edition 之 丛书编者序
丛书编者序亲爱的读者: 作为一个职业程序员,我每天都使用Qt。我对Qt的组织架构、设计理念及其带给C++开发人员的高效率印象深刻。 虽然Qt开始只是一款跨平台的GUI工具包,但如今已经发展到包括便携式设备在内的编程开发的几乎所有领域,如文件系统、进程管理、网络编程及数据库访问等等。由于Qt广泛的适用性,你只需要编写一次代码,仅仅通过重新编译就可以使其在不同的平台上运
2017-10-09 21:08:58 488
原创 C++ GUI Programming with Qt4 Second Edition 之 内容简介
内容简介 本书详细介绍使用Qt进行跨平台应用程序开发的各个方面,使用的Qt版本为Qt4.3,但对后续的Qt版本也有很大的指导作用。 本书主要内容分为三部分。 第一部分为Qt基础,主要介绍Qt入门,对话框的简单应用、主窗口的简单应用(包括菜单栏、工具栏、状态栏、对话框等窗口常用部件)、实现应用程序的功能及自定义窗口部件的创建,共计5章内容。这部分
2017-09-20 18:55:12 496
原创 C++ GUI Programming with Qt4 Second Edition 之 前言
前言提前声明,本前言非原书说明,仅为个人感想,并对各位大众做一简单交代。首先,本人翻译只是个人系统学习Qt的一种方式,无论是CSDN博客发布,还是微信公众号发布,既是为了让大家更快速的上手Qt,也是为了自己将来翻阅方便。其次,为了最大限度的节约大家时间,大家根据自己的需要选择是通过我的翻译来跟进还是自己看书。如果你刚接触Qt,且并不急于用其编程,那你可以利用自己的碎片时间跟进我的翻
2017-09-08 21:42:27 840
原创 Qt编程环境搭建
君欲善其事,必先利其器。在正式编写Qt程序之前,让我们先搭建Qt的编程环境。常用的Qt编程环境有两种,即VS与Qt Creator,两者各有所长,至于选择哪个,完全看个人爱好。本文会介绍两种环境的搭建方法,后续内容尽量不牵涉编程环境。由于在接触Qt之前一直用VS,因此我是用的VS,一来容易上手,二来方便Qt与C++、C等语言的混合编程,另外再结合Qt的Designer可以更容易的定制界面。
2017-09-07 22:30:42 937
原创 Qt开发社区开区之言
此篇博文是为微信公众号“Qt开发社区”所写,之所以在博客发表,一是为了让更多人了解“Qt开发社区”,二是个人强迫症,想要保证公众号和博客的统一。以下为正文。各位coder大家好!首先,感谢大家关注咱们"Qt开发社区"。目前咱们“Qt开发社区”还空空如也。写此贴目的,一是为了向大家说明开区之初心;二是写给自己。首先说开区初心。想自己从大学开始接触编程,到如今也有将近1
2017-09-07 15:37:37 757
原创 初识Qt
Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成
2017-09-06 21:30:53 546
原创 source insight删除没用的project
1、删除某一个或多个无用的project(历史project)用十六进制编辑器打开 "我的文档\Source Insight\Projects\PROJECTS.DB3" 文件 ,找到你要删除的项目路径及名称字符串,用0替换相关位置的数据。2、删除所有历史project直接删除"我的文档\Source Insight\Projects\PROJECTS.DB3" 文件即可,再重新打开
2017-07-20 16:53:07 6345
原创 Modbus 通讯协议数据帧之间的时间停顿间隔 “3.5字符”定义
Modbus 通讯时规定主机发送完一组命令必须间隔3.5个字符再发送下一组新命令,这个3.5字符主要用来告诉其他设备这次命令(数据)已结束,而这个3.5字符的时间间隔采用以下方式计算:1个字符包括1位起始位、8位数据位(一般情况)、1位校验位(或者没有)、1位停止位(一般情况下)这样说起来一般情况下1个字符就包括11位那么3.5个字符就是3.5*11=38.5位还有比如没有
2016-11-18 08:51:20 14744
原创 获取本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息及网线是否插入状态
使用windows sdk提供的API函数GetAdaptersInfo()可以获得本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息,并用IP_ADAPTER_INFO结构体存储,使用GetIfEntry()获取网卡的状态,可有效判断出网卡通讯是否正常,是否插入网线等状态......关于本文更为详细的说明及代码示例详见:http://download.csdn.net/
2016-06-29 10:36:29 17972 2
原创 Socket相关
1、Windows Socket相关:一般情况下,套接字默认是非阻塞的,如果非必需不要用以下代码将套接字设置为非阻塞:Uint32 argRet = 0; if(SOCKET_ERROR == ioctlsocket(sockNew, FIONBIO, &argRet)) { printf("ERROR: VdpuTransferManage_Listen::run(
2016-06-28 20:56:19 710
原创 Qt阻塞延时与非阻塞延时(四种方法之个人笔记)
/****************************************************************************************** 功能描述: 毫秒级非阻塞延时函数* 参数: 延时毫秒数* 其他说明: 已试验,可用********************************************************
2016-06-21 16:29:25 19227 1
原创 Qt 清空文件夹,删除非空文件夹
/********************************************************************************说明:删除文件及文件夹涉及到的类包括QDir、QFile、QFileInfo、QFileInfoList, 清空文件夹的方法很多,此处仅给出我常用的两种方法 cpp源文件,下载地址http://downlo
2016-06-16 11:05:12 13186 1
原创 VS或VC编译正常,但运行时出现Stack overflow
以下内容为网络资源结合自身实践的总结,在此首先感谢提供资源的各位网友。大家都知道,Windows程序的内存机制大概是这样的,全局变量(局部的静态变量本质也属于此范围)存储于堆内存,该段内存较大,一般不会溢出; 函数地址、函数参数、局部变量等信息存储于栈内存,VC6中栈内存默认大小为1M,对于当前日益扩大的程序规模而言,稍有不慎就可能出问题。(动态申请的内存即new出来的内存不在栈中)即
2016-06-15 16:23:25 2509
原创 Qt 判断文件或文件夹是否存在及创建文件夹
1. 判断文件夹是不是存在参数说明:QString fullPath;//文件夹全路径/*方法1*/bool isDirExist(QString fullPath){ QDir dir(fullPath); if(dir.exists()) { return true; } return false;}/
2016-06-12 11:13:23 74411 5
原创 QTableView类中实时刷新和固定选中的矛盾(即刷新后不清除选中标记)的解决方法
在非MVC形式的编程中使用QTableView类,若需要QTableView显示的内容实时刷新(如固定周期刷新),往往会导致选中标记也会被清除掉(即刷新之前选中某块区域,刷新之后就取消了选中),如果希望在刷新过程中保留选中标记,可选用如下方法:(1) 刷新前保存当前选中的单元格QModelIndexListselected = tableView->selectionModel()
2016-05-28 14:01:39 5354 3
原创 C++ socket函数解析
socket()函数intsocket(int domain, int type, int protocol);socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来
2016-05-21 15:42:15 3858
原创 Qt 使用Windows API 函数精确控制循环执行的周期时间
有时我们的线程是一个while()或for()的死循环,如果希望每隔固定时间循环执行一次,即实现固定周期的循环执行,则需要以下代码#define CYCLE_PERIOD100 /*固定周期宏定义,单位为毫秒 */LARGE_INTEGER litmp; LONGLONG QStart,QEnd;double dfSecond, dfFreq, dfTim; int t
2016-05-20 14:11:22 1880
原创 Qt 获取当前时间
1、获取带日期的时间,使用QDateTime类QDateTime current_date_time =QDateTime::currentDateTime();QString current_date =current_date_time.toString("yyyy.MM.dd hh:mm:ss.zzz ddd");current_date字符串结果为"2016.05.20 12:
2016-05-20 12:14:59 119775 7
原创 QT 文件夹操作(最精简的文件遍历操作)
QString m_sProjectPath = tr("C:\Users\administrator\Desktop");/*文件夹全路径名*/QDir dir(m_sProjectPath);dir.exists(); /*判断文件夹是否存在*/dir.setFilter(QDir::Files); /*设置dir的过滤模式,表示只遍历本文件夹内的文件*/QFileInfoLi
2016-05-17 16:10:11 8734
原创 Qt实现应用单实例运行(3)-使用QTSingleApplication
QTSingleApplication,是Qt官方提供的,用于实现只启动一个实例,并在启动时向另一个实例通信(依赖于QtNetwork模块) 默认情况下,收到消息后会自动激活自身窗口(一)简单使用:(1)将里面的qtsingleapplication目录拷贝到项目的源码目录中,(2)然后修改项目的.pro文件,加入下面两行代码(其中第二句是qtsingleapplication.p
2016-05-16 15:46:30 3003 2
原创 Qt实现应用单实例运行(2)-使用自定义类
1、.h文件#ifndef SINGLEAPPLICATION_H#define SINGLEAPPLICATION_H#include #include #include #include class SingleApplication : public QApplication {Q_OBJECTpublic:SingleApplicat
2016-05-16 15:40:16 584
原创 Qt实现应用单实例运行(1)-使用共享内存
在工程的main函数中添加以下代码(在QApplicationapp(argc, argv);和创建主窗口语句之间添加即可):// 确保只运行一次QSystemSemaphore sema("JAMKey",1,QSystemSemaphore::Open);sema.acquire();// 在临界区操作共享内存 SharedMemoryQSharedMemory mem("S
2016-05-16 15:36:47 794
原创 根据SOCKET套接字获得此套接字绑定的端口号
//testSocket:已经绑定了端口的套接字,这里假设不知道其绑定了哪个端口,本函数是通过该套接字反推其绑定的端口//函数返回该套接字的端口号int getPort(SOCKET testSocket){sockaddr_in sockAddr;int nlen = (int)sizeof(sockAddr);getsockname(testSocket, (socka
2016-05-11 18:17:23 2731
VS2008 使用API函数获取网卡信息及状态
2016-06-29
QT 清空文件夹,清空文件,删除非空文件夹
2016-06-16
Qt应用单实例运行的三种实现方法
2016-05-16
QT-SpreadSheet+C++ GUI Programming with Qt4 Second Edition
2016-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人