摘要:
在 QML 刚刚被引入到 Qt 4 的那段时间,人们往往在讨论 Qt Quick 是不是需要一个椭圆组件。由此,人们又联想到,是不是还需要其它的形状?这种没玩没了的联想导致了一个最直接的结果:除了圆角矩形,Qt Quick 什么都没有提供,包括椭圆。如果你需要一个椭圆,那就找个图片,或者干脆自己用 ... 阅读全文
posted @ 2015-09-15 21:40
Avatarx
阅读(2604)
评论(0)
推荐(0)
摘要:
PathViewPathView是 QtQuick 中最强大的视图,同时也是最复杂的。PathView允许创建一种更灵活的视图。在这种视图中,数据项并不是方方正正,而是可以沿着任意路径布局。沿着同一布局路径,数据项的属性可以被更详细的设置,例如缩放、透明度等。使用PathView首先需要定义一个代理... 阅读全文
posted @ 2015-09-15 21:36
Avatarx
阅读(1019)
评论(0)
推荐(0)
摘要:
与Qt model/view 架构类似,在自定义用户界面中,代理扮演着重要的角色。模型中的每一个数据项都要通过一个代理向用户展示,事实上,用户看到的可视部分就是代理。每一个代理都可以访问一系列属性和附加属性。这些属性及附加属性中,有些来自于数据模型,有些则来自于视图。前者为代理提供了每一个数据项的数... 阅读全文
posted @ 2015-09-15 21:23
Avatarx
阅读(2212)
评论(0)
推荐(0)
摘要:
Repeater适用于少量的静态数据集。但是在实际应用中,数据模型往往是非常复杂的,并且数量巨大。这种情况下,Repeater并不十分适合。于是,QtQuick 提供了两个专门的视图元素:ListView和GridView。这两个元素都继承自Flickable,因此允许用户在一个很大的数据集中进行移... 阅读全文
posted @ 2015-09-15 21:00
Avatarx
阅读(1248)
评论(0)
推荐(0)
摘要:
前面的章节我们介绍过模型视图。这是一种数据和显示相分离的技术,在 Qt 中有着非常重要的地位。在 QtQuick 中,数据和显示的分离同样也是利用这种“模型-视图”技术实现的。对于每一个视图,数据元素的可视化显示交给代理完成。与 Qt/C++ 类似,QtQuick 提供了一系列预定义的模型和视图。本... 阅读全文
posted @ 2015-09-15 20:37
Avatarx
阅读(844)
评论(0)
推荐(0)
摘要:
自 QML 第一次发布已经过去一年多的时间,但在企业应用领域,QML 一直没有能够占据一定地位。很大一部分原因是,QML 缺少一些在企业应用中亟需的组件,比如按钮、菜单等。虽然移动领域,这些组件已经变得可有可无,但在桌面系统中依然不可或缺。为了解决这一问题,Qt 5.1 发布了 Qt Quick 的... 阅读全文
posted @ 2015-09-15 20:27
Avatarx
阅读(2992)
评论(0)
推荐(0)
摘要:
前面的章节中,我们看到了作为输入元素的MouseArea,用于接收鼠标的输入。下面,我们再来介绍关于键盘输入的两个元素:TextInput和TextEdit。TextInput是单行的文本输入框,支持验证器、输入掩码和显示模式等。12345678910111213141516171819202122... 阅读全文
posted @ 2015-09-15 18:54
Avatarx
阅读(548)
评论(0)
推荐(0)
摘要:
上一章我们介绍了 QML中用于定位的几种元素,被称为定位器。除了定位器,QML还提供了另外一种用于布局的机制。我们将这种机制成为锚点(anchor)。锚点允许我们灵活地设置两个元素的相对位置。它使两个元素之间形成一种类似于锚的关系,也就是两个元素之间形成一个固定点。锚点的行为类似于一种链接,它要比单... 阅读全文
posted @ 2015-09-15 18:38
Avatarx
阅读(841)
评论(0)
推荐(1)
摘要:
QML 提供了很多用于定位的元素。这些元素叫做定位器,都包含在 QtQuick 模块。这些定位器主要有Row、Column、Grid和Flow等。为了介绍定位器,我们先添加三个简单的组件用于演示:首先是RedRectangle,RedRectangle12345678import QtQuick 2... 阅读全文
posted @ 2015-09-15 17:05
Avatarx
阅读(724)
评论(0)
推荐(0)
摘要:
前面我们简单介绍了几种 QML 的基本元素。QML 可以由这些基本元素组合成一个复杂的元素,方便以后我们的重用。这种组合元素就被称为组件。组件就是一种可重用的元素。QML 提供了很多方法来创建组件。不过,本章我们只介绍一种方式:基于文件的组件。基于文件的组件将 QML 元素放置在一个单独的文件中,然... 阅读全文
posted @ 2015-09-15 16:43
Avatarx
阅读(535)
评论(0)
推荐(0)
摘要:
前面我们简单介绍了几种 QML 的基本元素。QML 可以由这些基本元素组合成一个复杂的元素,方便以后我们的重用。这种组合元素就被称为组件。组件就是一种可重用的元素。QML 提供了很多方法来创建组件。不过,本章我们只介绍一种方式:基于文件的组件。基于文件的组件将 QML 元素放置在一个单独的文件中,然... 阅读全文
posted @ 2015-09-15 16:26
Avatarx
阅读(3758)
评论(0)
推荐(0)
摘要:
QML 基本元素可以分为可视元素和不可视元素两类。可视元素(例如前面提到过的Rectangle)具有几何坐标,会在屏幕上占据一块显示区域。不可视元素(例如Timer)通常提供一种功能,这些功能可以作用于可视元素。本章我们将会集中介绍集中最基本的可视元素:Item、Rectangle、Text、Ima... 阅读全文
posted @ 2015-09-15 16:24
Avatarx
阅读(2443)
评论(0)
推荐(0)
摘要:
前面我们已经见识过 QML 文档。一个 QML 文档分为 import 和对象声明两部分。如果你要使用 Qt Quick,就需要 import QtQuick 2。QML 是一种声明语言,用于描述程序界面。QML 将用户界面分解成一块块小的元素,每一元素都由很多组件构成。QML 定义了用户界面元素的... 阅读全文
posted @ 2015-09-15 15:41
Avatarx
阅读(1429)
评论(0)
推荐(0)
摘要:
前面我们已经了解了 Qt 的一部分内容。这部分内容全部集中在 C++ 方面。也就是说,至今为止我们的程序都是使用 C++ 语言完成的。这在 Qt 5 之前的版本中是唯一的途径。不过,自从 Qt 5 开始,情况有了变化。事实上,从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt... 阅读全文
posted @ 2015-09-15 14:56
Avatarx
阅读(1036)
评论(0)
推荐(0)
摘要:
前面我们已经详细介绍过有关线程的一些值得注意的事项。现在我们开始对线程做一些总结。有关线程,你可以做的是:在QThread子类添加信号。这是绝对安全的,并且也是正确的(前面我们已经详细介绍过,发送者的线程依附性没有关系)不应该做的是:调用moveToThread(this)函数指定连接类型:这通常意... 阅读全文
posted @ 2015-09-15 14:33
Avatarx
阅读(735)
评论(0)
推荐(0)
摘要:
前面两个章节我们从事件循环和线程类库两个角度阐述有关线程的问题。本章我们将深入线程间得交互,探讨线程和QObject之间的关系。在某种程度上,这才是多线程编程真正需要注意的问题。现在我们已经讨论过事件循环。我们说,每一个 Qt 应用程序至少有一个事件循环,就是调用了QCoreApplication:... 阅读全文
posted @ 2015-09-15 14:06
Avatarx
阅读(2115)
评论(0)
推荐(0)
摘要:
希望上一章有关事件循环的内容还没有把你绕晕。本章将重新回到有关线程的相关内容上面来。在前面的章节我们了解了有关QThread类的简单使用。不过,Qt 提供的有关线程的类可不那么简单,否则的话我们也没必要再三强调使用线程一定要万分小心,一不留神就会陷入陷阱。事实上,Qt 对线程的支持可以追溯到2000... 阅读全文
posted @ 2015-09-15 13:17
Avatarx
阅读(849)
评论(0)
推荐(0)
摘要:
前面一章我们简单介绍了如何使用QThread实现线程。现在我们开始详细介绍如何“正确”编写多线程程序。我们这里的大部分内容来自于Qt的一篇Wiki文档,有兴趣的童鞋可以去看原文。在介绍在以前,我们要认识两个术语:可重入的(Reentrant):如果多个线程可以在同一时刻调用一个类的所有函数,并且保证... 阅读全文
posted @ 2015-09-15 13:02
Avatarx
阅读(839)
评论(0)
推荐(0)
摘要:
现代的程序中,使用线程的概率应该大于进程。特别是在多核时代,随着 CPU 主频的提升,受制于发热量的限制,CPU 散热问题已经进入瓶颈,另辟蹊径地提高程序运行效率就是使用线程,充分利用多核的优势。有关线程和进程的区别已经超出了本章的范畴,我们简单提一句,一个进程可以有一个或更多线程同时运行。线程可以... 阅读全文
posted @ 2015-09-15 12:42
Avatarx
阅读(468)
评论(0)
推荐(0)
摘要:
一、引言 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。WIN32 API提供了许多函数使我们能够方便高效的进行进程间的通讯,通过这些函数我们可以控制不同进程间的数据交换.进程间通讯(即:同机通讯)和数据交换有多种方式:消息、共享内存、匿名(命名)管道、邮槽、Windows套接... 阅读全文
posted @ 2015-09-15 12:34
Avatarx
阅读(907)
评论(0)
推荐(1)

浙公网安备 33010602011771号