QClipboard 剪贴板 在Qt中,我们可以使用QClipboard类来访问窗口系统的剪贴板对象。剪贴板为我们在不同的应用间拷贝粘贴数据提供了一种简单的机制。并且,其所支持的数据类型和Qt中的拖放操作所支持的类型相同。
QTimer 定时器 QTimer类为我们提供了一个即可重复触发又可单次触发的定时器。它是一个高层次的应用程序接口。要使用它,只需创建一个QTimer类对象,将它的timeout()信号连接到适当的函数上,然后调用其start()函数开启定时器即可,此后,QTimer对象就会周期性的发出timeout()信号。
QTimeLine 控制动画 QTimeLine顾名思义表示一条时间线,即一个时间序列,该时间序列会按我们实现定义好的间隔一步一步的往前变化,并在每次变化时都会发出一个frameChanged()信号。所以,我们通常会使用该类来驱动我们的动画。
JsonCpp JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON是存储和交换文本信息的语法,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为了理想的数据交换语言。
QThread与多线程 QThread类为我们提供了一种平台无关的管理线程的方式。一个QThread对象管理应用程序中的一个线程,该线程从run()函数开始执行。并且,默认情况下,我们可以在run()函数中通过调用QThread::exec()函数来在当前线程中开启一个事件循环。
QStandardPaths 获得系统特定目录 QStandardPaths提供了一系列的静态方法,供我们用来获得当前系统配置下的特定的目录。比如,已Windows系统为例,有用户目录,图片目录,视频目录,桌面等等。该类的使用也非常方便,因为它只有几个静态方法,我们可以直接调用。
Qt隐式共享与显式共享 Qt中的很多C++类都使用了隐式数据共享来最大化资源使用和最小化拷贝代价。隐式共享类在作为参数传递时,不仅安全而且高效,因为只是指向数据的指针被传递了,底层的数据只有在函数向它执行写动作时才会发生拷贝,即写时拷贝。
QRunnable与多线程 前面的博文中,我们讲过QtConcurrent模块,该模块是Qt中实现并发编程的高级API接口,而QRunnable结合QThreadPoll和QThread都是Qt中与并发编程相关的低级接口。今天我们先来看QRunnable和QThreadPool。
Qt中的读写锁 Qt中的QReadWriteLock类为我们提供了读写锁的功能。读写锁是用来保护可以被读访问和写访问的资源的一种同步工具。如果你想让多个线程同时的对资源进行读访问,但只要有一个线程要对资源进行写访问时,所有其他的线程必须等待,直到写访问完成。对于这种情况,读写锁是非常有用的。