
Qt
文章平均质量分 83
求道玉
这个作者很懒,什么都没留下…
展开
-
QClipboard 剪贴板
在Qt中,我们可以使用QClipboard类来访问窗口系统的剪贴板对象。剪贴板为我们在不同的应用间拷贝粘贴数据提供了一种简单的机制。并且,其所支持的数据类型和Qt中的拖放操作所支持的类型相同。原创 2017-04-25 14:40:09 · 4543 阅读 · 1 评论 -
QMetaMethod 获取成员函数的元信息
在上一篇中,我们将的是QMetaEnum类,它可以获得一个类中由Q_ENUM宏或Q_FLAG宏声明的枚举类型的元信息。同样,QMetaMethod类是用来获取成员方法的元信息的一个类。原创 2017-04-05 09:23:00 · 3186 阅读 · 0 评论 -
QStorageInfo获取磁盘信息
QStorageInfo类提供了系统当前挂载的存储和驱动器的相关信息,包括它们的空间,挂载点,标签名,文件系统名。原创 2017-04-13 10:26:45 · 4931 阅读 · 2 评论 -
QMetaEnum获取枚举元信息
QMetaEnum 类提供了一个枚举的元数据。我们可以使用该类的静态模板函数,fromType来获得关于某个枚举的QMetaEnum对象,然后就可以调用该类的成员函数来获得该枚举的相关信息。该枚举必须使用Q_ENUM宏进行声明。原创 2017-04-04 17:02:28 · 4827 阅读 · 0 评论 -
QStandardPaths 获得系统特定目录
QStandardPaths提供了一系列的静态方法,供我们用来获得当前系统配置下的特定的目录。比如,已Windows系统为例,有用户目录,图片目录,视频目录,桌面等等。该类的使用也非常方便,因为它只有几个静态方法,我们可以直接调用。原创 2017-04-13 09:01:24 · 7742 阅读 · 0 评论 -
使用QLibrary加载动态库
使用QLibrary可以在程序运行时加载动态链接库。一个QLibrary的实例作用于一个单一的共享库上。QLibrary提供了一种平台无关的方式访问库中的函数。可以在构建QLibrary的实例时将要加载的库文件传入,也可以在创建实例后使用setFileName()显式的设置要加载的文件名。当加载库文件时,QLibrary会搜索所有平台特定的库位置,除非传入的文件名具有绝对路径。原创 2017-04-04 10:50:31 · 26530 阅读 · 0 评论 -
Qt状态机框架
状态机框架 Qt中的状态机框架为我们提供了很多的API和类,使我们能更容易的在自己的应用程序中集成状态动画。这个框架是和Qt的元对象系统机密结合在一起的。比如,各个状态之间的转换是通过信号触发的,状态可被配置为用来设置QObject对象的属性以及调用其方法。可以说Qt中的状态机就是通过Qt自身的事件系统来驱动的。同时,状态机中的状态图是分层次的。一些状态可以被嵌套到另原创 2017-03-16 10:43:47 · 7706 阅读 · 0 评论 -
Qt中的JSON操作
JSON(JavaScript Object Notation,js对象标记)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,使用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效的提升网络传输效率。关于JSON的更多解释,请参看JSON官网。原创 2017-04-03 07:50:48 · 37315 阅读 · 4 评论 -
使用QtConcurrent编写多线程程序
Qt在其QtConcurrent命名空间中为我们提供了编写多线程程序的高级API,使用这个API可以使我们在不使用低级的线程元素,如互斥锁,读写锁,条件变量或者信号量的情况下编写出搞笑的多线程程序。并且,使用QtConcurrent编写的程序能够自动地根据当前可以使用的处理器核心数调整实际使用的线程数目。这就意味着我们目前所写的程序即使将来的多核心机器上也能正常运行,并有很好的伸缩性。QtCo原创 2017-03-26 08:14:49 · 4497 阅读 · 0 评论 -
QSignalMapper 信号映射
QSignalMapper类收集了一系列的无参信号,然后使用相对于信号发送者来说的整数、字符串或控件参数来重新发送它们。原创 2017-04-11 13:07:55 · 2988 阅读 · 0 评论 -
QSysInfo获取操作系统的相关信息
QSysInfo类可以为我们提供一些有关当前系统的底层信息原创 2017-04-13 16:23:59 · 6022 阅读 · 4 评论 -
QSystemSemaphore 系统级信号量
在之前的一篇文章中,我们讲过了QSemaphore类,其可以用于同步多线程。而今天要讲到的这个类,根据名字就可以猜测到,其可以在整个系统中使用,即它既可以用于多线程,也可以用于多线程。当然,这也意味着,QSystemSemaphore类是一个比较重量级的类,所以,除非在同步多进程的情况下,否则不应该使用该类。其他方面,该类和QSemaphore均相同,操作也相同。原创 2017-04-13 15:15:03 · 3581 阅读 · 0 评论 -
QWaitCondition 条件变量
在之前的文章中,我们已经讲过了很多种线程同步的方法,如互斥锁,信号量,读写锁等,今天我们再来学习一种线程同步的方法,条件变量。原创 2017-04-18 11:19:10 · 5600 阅读 · 0 评论 -
QBitmap 单色图片
QBitmap表示一种只有黑白的单色图片,类似于mfc中的位图。该类主要用于创建自定义的光标和画刷对象,以及创建区域对象和为某个空间设置掩码图片。原创 2017-04-25 10:38:45 · 3026 阅读 · 0 评论 -
Qt中的打印操作
Qt中对打印的支持是有一个独立的printsupport模块来完成的原创 2017-04-24 14:12:40 · 14470 阅读 · 8 评论 -
QTimer 定时器
QTimer类为我们提供了一个即可重复触发又可单次触发的定时器。它是一个高层次的应用程序接口。要使用它,只需创建一个QTimer类对象,将它的timeout()信号连接到适当的函数上,然后调用其start()函数开启定时器即可,此后,QTimer对象就会周期性的发出timeout()信号。原创 2017-04-17 13:51:41 · 35174 阅读 · 0 评论 -
QTimeLine 控制动画
QTimeLine顾名思义表示一条时间线,即一个时间序列,该时间序列会按我们实现定义好的间隔一步一步的往前变化,并在每次变化时都会发出一个frameChanged()信号。所以,我们通常会使用该类来驱动我们的动画。原创 2017-04-17 12:26:07 · 961 阅读 · 0 评论 -
使用QXmlStreamReader和QXmlStreamWriter读写XMl文件
使用QXmlStreamReader和QXmlStreamWriter读写XMl文件原创 2017-04-20 08:42:47 · 4126 阅读 · 0 评论 -
Qt中的读写锁
Qt中的QReadWriteLock类为我们提供了读写锁的功能。读写锁是用来保护可以被读访问和写访问的资源的一种同步工具。如果你想让多个线程同时的对资源进行读访问,但只要有一个线程要对资源进行写访问时,所有其他的线程必须等待,直到写访问完成。对于这种情况,读写锁是非常有用的。原创 2017-04-06 15:52:27 · 12748 阅读 · 0 评论 -
QObject
QObject类是所以Qt类的基类,也是Qt对象模型的核心原创 2017-04-06 08:37:48 · 11857 阅读 · 2 评论 -
QThread与多线程
QThread类为我们提供了一种平台无关的管理线程的方式。一个QThread对象管理应用程序中的一个线程,该线程从run()函数开始执行。并且,默认情况下,我们可以在run()函数中通过调用QThread::exec()函数来在当前线程中开启一个事件循环。原创 2017-04-14 13:47:44 · 3317 阅读 · 0 评论 -
Qt动画组
Qt中的动画组是由QAnimationGroup抽象类来表示的。一个动画组是一个动画的容器。动画组一般负责管理它的动画的状态,也就是说由它决定,什么时候开始动画,什么时候停止动画,什么时候暂停动画,什么时候重新运行动画。目前,Qt中提供了两种动画组:并行动画组合串行动画组。原创 2017-04-05 20:09:12 · 1490 阅读 · 0 评论 -
QSharedMemory共享内存
QSharedMemory为多线程和多进程提供了访问共享内存段的功能。原创 2017-04-11 09:25:04 · 5034 阅读 · 1 评论 -
Qt插件开发入门
Qt中为我们提供了两种开发插件的方式。一种是使用High-Level API接口,一种是使用Low-Level API接口。原创 2017-03-15 14:20:17 · 5106 阅读 · 4 评论 -
使用QFuture类监控异步计算的结果
在Qt中,为我们提供了好几种使用线程的方式,除了最基本的QThread类之外,还有QRunnable抽象类,类似于Java的runnable接口,还可以使用moveToThread() 函数,还有更高级的QtConcurrent框架。而今天,我们要看的QFuture就是和QtConcurrent框架API配合使用的一个类。新来看Qt帮助文档对这个类的详细介绍。QFuture类用来表示一个异步计原创 2017-03-24 14:40:43 · 3118 阅读 · 0 评论 -
QDebug 输出调试信息
在程序开发过程中,我们经常需要打印一些调试信息到终端,以供我们开发人员快速定位软件的问题所在。而QDebug类就是用来完成这样的功能的一个类。使用QDebug类,我们可以将调试信息打印到控制台、文件、甚至某个字符串中。原创 2017-03-21 10:22:50 · 29826 阅读 · 2 评论 -
Qt中的日期时间类
在Qt中,为了方便日期和时间的表示和相关操作,为我们提供了两个类。一个是QDate,表示年月日形式的日期;一个是QTime,表示时分秒形式的时间。今天,就来学习一下这两个类的使用方法。QDate类已格里高里历为准表示年月日的日期。该类可以从系统时钟里读取当前日期,并且为我们提供了大量方便的日期操作,比如日期的加减。通常我们可以使用特定的年月日数字来构造一个该来的对象,让给在进行其他计算。其原创 2017-03-21 08:33:11 · 17532 阅读 · 0 评论 -
Qt中的常用容器类
在Qt库中为我们提供了一系列的基于模板的容器类。这些类可以被用来存储特定类型的项。例如,如果你需要一个大小可以变得QString数组,那么可以使用QVector。原创 2017-03-26 19:47:49 · 26352 阅读 · 0 评论 -
QDataStream 二进制数据读写
Qt中的QDataStream类为我们的程序提供了读写二进制数据的能力。一个数据流如果是二进制编码的数据流,那么它肯定是与计算机的操作系统、CPU或者字节序无关的。例如,一个数据流是在一个运行Windows系统的PC机上被写入的,那么它照样可以在一台运行Solaris的Sun SPARC的机器上被读取出来。同样,我们也可以使用QDataStream去读写原生的未编码的二进制数据。QDataSt原创 2017-03-20 14:24:43 · 38671 阅读 · 3 评论 -
QCoreApplication
我们都自动,Qt是一个开源的C++库,主要用来开发GUI程序,但同时,它也支持控制台程序的开发。并且,这里的控制台程序又分为Qt控制台程序和纯C++控制台程序。其中,C++控制台程序就没什么好说的了,就是我们大学的入门程序了,使用cout、stl这样标准的C++组件;而Qt控制台程序是和Qt GUI相对的一种程序,它处理可以进行一般的打印输出外,也可以像GUI程序一样,支持事件循环、信号和槽的特性原创 2017-03-20 09:54:28 · 23542 阅读 · 0 评论 -
QCache 缓存
在软件开发中,我们经常需要在内存中存储一些临时数据用于后续相关计算。我们一般把这些数据存储到某个数组里,或者STL中的某个合适的容器中。其实,在Qt中直接为我们提供了一个QCache类专用于这种需求。QCache类是一个模板类。QCache 就定义了一个缓存,其类似于map,也是存储的键值对。例如,下面的代码定义了一个缓存,里面存储的键是一个整数,值是我们自定义的Employee类型:原创 2017-03-19 15:56:39 · 3961 阅读 · 0 评论 -
QByteArray简单入门
Qt通过QByteArray为我们提供了一个字节数组容器。QByteArray既可以用来存储原始的字节,包括'\0',也可以用来存储传统的8-bit 的以'\0'结尾的字符串。使用QByteArray比使用普通的const char* 更方便。并且,在底层,它可以确保其中存储的数据以'\0'结尾,并且通过隐式共享(写时拷贝)策略去减少内存的使用和不必要的数据复制。当然,除了QByteArray原创 2017-03-17 15:41:00 · 36500 阅读 · 1 评论 -
QBuffer简单操作
Qt中通过QBuffer类我们可以使用io的方式访问、操作QByteArray中的内容。此时,QByteArray被看做一个标准的可随机访问的文件。原创 2017-03-17 14:40:46 · 4073 阅读 · 0 评论 -
低级定时器之QBasicTimer
QBasicTimers 是一个很快的、轻量级的定时器类,它主要被Qt内部使用。所以,我们一般不建议在上层应用程序中直接使用这个类去做定时器工作。在开发应用程序时,我们一般推荐使用QTimer类和QObject的成员函数startTimer来启动定时器。在此,只是出于学习还简单介绍一下QBasicTimer类的使用。还有,该定时器是一种重复性定时器,即它在启动后会不断的向应用程序发送定时器事件,直原创 2017-03-17 13:15:21 · 6385 阅读 · 0 评论 -
Qt 目录操作
QDir类提供了访问目录结构和目录内容的功能。它一般被用来操作路径名,访问路径和文件的信息。还可以用来访问Qt的资源系统。Qt使用"/"作为统一的目录分隔符,类似于在URL中所使用的那样。原创 2017-03-21 13:13:43 · 7065 阅读 · 0 评论 -
QElapsedTimer 计时器
QElapsedTimer提供了一种快捷的计算流逝时间的方法。它通常被用来计算两个事件或操作之间过去了多久。并且,该类的方法非常类似于我们之前讲过的QTime类的三个计时函数,所以,我们可以很快速的在使用这两个类的代码之间进行移植。原创 2017-03-22 09:19:31 · 13957 阅读 · 1 评论 -
Qt事件类 QEvent
QEvent是Qt中所有事件的基类,事件对象包含了该次事件所携带的相关参数。原创 2017-03-22 11:48:46 · 9019 阅读 · 2 评论 -
Qt隐式共享与显式共享
Qt中的很多C++类都使用了隐式数据共享来最大化资源使用和最小化拷贝代价。隐式共享类在作为参数传递时,不仅安全而且高效,因为只是指向数据的指针被传递了,底层的数据只有在函数向它执行写动作时才会发生拷贝,即写时拷贝。原创 2017-04-10 13:43:55 · 3513 阅读 · 0 评论 -
Qt中的通用模板算法
Qt在头文件中为我们提供了一系列的全局模板方法,这些模板方法主要用于容器操作。原创 2017-03-08 10:48:07 · 1494 阅读 · 0 评论 -
使用QFileSystemWatcher监控磁盘文件状态变化
使用QFileSystemWatcher类可以实时监视磁盘上某个文件或目录的状态是否发生变化,比如删除、重命名等。我们只需将要监视的文件或目录通过其成员函数addPath() 或 addPaths() 添加到该类对象的监控列表中即可;当然,我们也可以根据实际情况调用removePath() 或 removePaths() 将现存的文件或目录从监控列表中删除。QFileSystemWatcher原创 2017-03-24 10:08:58 · 3108 阅读 · 3 评论