分类:Qt 学习之路 2Qt 学习之路 2(94):使用 C++ 扩展 QML(续)
在上一章中,我们试图利用 C++ 扩展 QML,实现一个名为 FileIO 的插件。我们已经完成 …
Qt 学习之路 2(93):使用 C++ 扩展 QML
QML 只能运行在一个受限环境中,这是由于 QML 语言本身有一些限制。为了解决这一问题,我们可 …
Qt 学习之路 2(92):QML 存储
对于很多应用程序,存储数据的能力是必须的。比如,你需要保存下用户设置的参数等。Qt/C++ 提供 …
Qt 学习之路 2(91):粒子系统(续)
上一章我们介绍了粒子的旋转。粒子的旋转作用于每一个粒子,除此之外,我们还可以设置粒子轨迹的方向。 …
Qt 学习之路 2(90):粒子系统
粒子系统是一种计算机图形学的技术,用于模拟一些特定的模糊现象,这些现象用传统的渲染技术难以达到一 …
Qt 学习之路 2(89):Canvas(续)
变换 Canvas中的“变形”,主要指的是坐标系的变换,而不是路径的变换。这与 QML 元素变换 …
Qt 学习之路 2(88):Canvas
在 QML 刚刚被引入到 Qt 4 的那段时间,人们往往在讨论 Qt Quick 是不是需要一个 …
Qt 学习之路 2(87):模型-视图高级技术
PathView PathView是 QtQuick 中最强大的视图,同时也是最复杂的。Path …
Qt 学习之路 2(86):视图代理
与 Qt model/view 架构类似,在自定义用户界面中,代理扮演着重要的角色。模型中的每一 …
Qt 学习之路 2(85):动态视图
Repeater适用于少量的静态数据集。但是在实际应用中,数据模型往往是非常复杂的,并且数量巨大 …
Qt 学习之路 2(84):Repeater
前面的章节我们介绍过模型视图。这是一种数据和显示相分离的技术,在 Qt 中有着非常重要的地位。在 …
Qt 学习之路 2(83):Qt Quick Controls
自 QML 第一次发布已经过去一年多的时间,但在企业应用领域,QML 一直没有能够占据一定地位。 …
Qt 学习之路 2(82):输入元素
前面的章节中,我们看到了作为输入元素的MouseArea,用于接收鼠标的输入。下面,我们再来介绍 …
Qt 学习之路 2(81):元素布局
上一章我们介绍了 QML 中用于定位的几种元素,被称为定位器。除了定位器,QML 还提供了另外一 …
Qt 学习之路 2(80):定位器
QML 提供了很多用于定位的元素。这些元素叫做定位器,都包含在 QtQuick 模块。这些定位器 …
Qt 学习之路 2(79):QML 组件
前面我们简单介绍了几种 QML 的基本元素。QML 可以由这些基本元素组合成一个复杂的元素,方便 …
Qt 学习之路 2(78):QML 基本元素
QML 基本元素可以分为可视元素和不可视元素两类。可视元素(例如前面提到过的Rectangle) …
Qt 学习之路 2(77):QML 语法
前面我们已经见识过 QML 文档。一个 QML 文档分为 import 和对象声明两部分。如果你 …
Qt 学习之路 2(76):QML 和 QtQuick 2
前面我们已经了解了 Qt 的一部分内容。这部分内容全部集中在 C++ 方面。也就是说,至今为止我 …
Qt 学习之路 2(75):线程总结
前面我们已经详细介绍过有关线程的一些值得注意的事项。现在我们开始对线程做一些总结。 有关线程,你 …
Qt 学习之路 2(74):线程和 QObject
前面两个章节我们从事件循环和线程类库两个角度阐述有关线程的问题。本章我们将深入线程间得交互,探讨 …
Qt 学习之路 2(73):Qt 线程相关类
希望上一章有关事件循环的内容还没有把你绕晕。本章将重新回到有关线程的相关内容上面来。在前面的章节 …
Qt 学习之路 2(72):线程和事件循环
前面一章我们简单介绍了如何使用QThread实现线程。现在我们开始详细介绍如何“正确”编写多线程 …
Qt 学习之路 2(71):线程简介
前面我们讨论了有关进程以及进程间通讯的相关问题,现在我们开始讨论线程。事实上,现代的程序中,使用 …
Qt 学习之路 2(70):进程间通信
上一章我们了解了有关进程的基本知识。我们将进程理解为相互独立的正在运行的程序。由于二者是相互独立 …
Qt 学习之路 2(69):进程
进程是操作系统的基础之一。一个进程可以认为是一个正在执行的程序。我们可以把进程当做计算机运行时的 …
Qt 学习之路 2(68):访问网络(4)
前面几章我们了解了如何使用QNetworkAccessManager 访问网络。在此基础上,我们 …
Qt 学习之路 2(67):访问网络(3)
上一章我们了解了如何使用我们设计的NetWorker类实现我们所需要的网络操作。本章我们将继续完 …
Qt 学习之路 2(66):访问网络(2)
上一章我们了解了NetWorker类的简单实现。不仅如此,我们还提到了几个 C++ 开发时常用的 …
Qt 学习之路 2(65):访问网络(1)
现在的应用程序很少有纯粹单机的。大部分为了各种目的都需要联网操作。为此,Qt 提供了自己的网络访 …
Qt 学习之路 2(64):使用 QJsonDocument 处理 JSON
上一章我们了解了如何使用 QJson 处理 JSON 文档。QJson 是一个基于 Qt 的第三 …
Qt 学习之路 2(63):使用 QJson 处理 JSON
XML 曾经是各种应用的配置和传输的首选方式。但是现在 XML 遇到了一个强劲的对手:JSON。 …
Qt 学习之路 2(62):保存 XML
前面几章我们讨论了读取 XML 文档的三种方法。虽然各有千秋,但是 Qt 推荐的是使用QXmlS …
Qt 学习之路 2(61):使用 SAX 处理 XML
前面两章我们介绍了使用流和 DOM 的方式处理 XML 的相关内容,本章将介绍处理 XML 的最 …
Qt 学习之路 2(60):使用 DOM 处理 XML
DOM 是由 W3C 提出的一种处理 XML 文档的标准接口。Qt 实现了 DOM Level …
Qt 学习之路 2(59):使用流处理 XML
本章开始我们将了解到如何使用 Qt 处理 XML 格式的文档。 XML(eXtensible M …
Qt 学习之路 2(58):编辑数据库外键
前面几章我们介绍了如何对数据库进行操作以及如何使用图形界面展示数据库数据。本章我们将介绍如何对数 …
Qt 学习之路 2(57):可视化显示数据库数据
前面我们用了两个章节介绍了 Qt 提供的两种操作数据库的方法。显然,使用QSqlQuery的方式 …
Qt 学习之路 2(56):使用模型操作数据库
前一章我们使用 SQL 语句完成了对数据库的常规操作,包括简单的 CREATE、SELECT 等 …
Qt 学习之路 2(55):数据库操作
Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作。这里我们所说的“平台独 …
Qt 学习之路 2(54):剪贴板
剪贴板的操作经常和前面所说的拖放技术在一起使用。大家对剪贴板都很熟悉。我们可以简单地把它理解成一 …
Qt 学习之路 2(53):自定义拖放数据
上一章中,我们的例子使用系统提供的拖放对象QMimeData进行拖放数据的存储。比如使用QMim …
Qt 学习之路 2(52):使用拖放
拖放(Drag and Drop),通常会简称为 DnD,是现代软件开发中必不可少的一项技术。它 …
Qt 学习之路 2(51):布尔表达式树模型
本章将会是自定义模型的最后一部分。原本打算结束这部分内容,不过实在不忍心放弃这个示例。来自于 C …
Qt 学习之路 2(50):自定义可编辑模型
上一章我们了解了如何自定义只读模型。顾名思义,只读模型只能够用于展示只读数据,用户不能对其进行修 …
Qt 学习之路 2(49):自定义只读模型
model/view 模型将数据与视图分割开来,也就是说,我们可以为不同的视图,QListVie …
Qt 学习之路 2(48):QSortFilterProxyModel
从本章开始,我们将逐步了解有关自定义模型的相关内容。尽管前面我们曾经介绍过 Qt 提供的几个内置 …
Qt 学习之路 2(47):视图选择
选择是视图中常用的一个操作。在列表、树或者表格中,通过鼠标点击可以选中某一项,被选中项会变成高亮 …
Qt 学习之路 2(46):视图和委托
前面我们介绍了模型的概念。下面则是另外一个基本元素:视图。在 model/view 架构中,视图 …
Qt 学习之路 2(45):模型
在前面两章的基础之上,我们将开始介绍 model 的通用概念。 在 model/view 架构中 …
Qt 学习之路 2(44):QFileSystemModel
上一章我们详细了解了QStringListModel。本章我们将再来介绍另外一个内置模型:QFi …
Qt 学习之路 2(43):QStringListModel
上一章我们已经了解到有关 list、table 和 tree 三个最常用的视图类的便捷类的使用。 …
Qt 学习之路 2(42):QListWidget、QTreeWidget 和 QTableWidget
上一章我们了解了 model/view 架构的基本概念。现在我们从最简单的QListWidget …
Qt 学习之路 2(41):model/view 架构
有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面 …
Qt 学习之路 2(40):隐式数据共享
Qt 中许多 C++ 类使用了隐式数据共享技术,来最大化资源利用率和最小化拷贝时的资源消耗。当作 …
Qt 学习之路 2(39):遍历容器
上一节我们大致了解了有关存储容器的相关内容。对于所有的容器,最常用的操作就是遍历。本章我们将详细 …
Qt 学习之路 2(38):存储容器
存储容器(containers)有时候也被称为集合(collections),是能够在内存中存储 …
Qt 学习之路 2(37):文本文件读写
上一章我们介绍了有关二进制文件的读写。二进制文件比较小巧,却不是人可读的格式。而文本文件是一种人 …
Qt 学习之路 2(36):二进制文件读写
在上一章中,我们介绍了有关QFile和QFileInfo两个类的使用。我们提到,QIODevic …
Qt 学习之路 2(35):文件
文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。从本章开 …
Qt 学习之路 2(34):贪吃蛇游戏(4)
这将是我们这个稍大一些的示例程序的最后一部分。在本章中,我们将完成GameController中 …
Qt 学习之路 2(33):贪吃蛇游戏(3)
继续前面一章的内容。上次我们讲完了有关蛇的静态部分,也就是绘制部分。现在,我们开始添加游戏控制的 …
Qt 学习之路 2(32):贪吃蛇游戏(2)
下面我们继续上一章的内容。在上一章中,我们已经完成了地图的设计,当然是相当简单的。在我们的游戏中 …
Qt 学习之路 2(31):贪吃蛇游戏(1)
经过前面一段时间的学习,我们已经了解到有关 Qt 相当多的知识。现在,我们将把前面所讲过的知识综 …
Qt 学习之路 2(30):Graphics View Framework
Graphics View 提供了一种接口,用于管理大量自定义的 2D 图形元素,并与之进行交互 …
Qt 学习之路 2(29):绘制设备
绘图设备是继承QPainterDevice的类。QPaintDevice就是能够进行绘制的类,也 …
Qt 学习之路 2(28):坐标系统
在经历过实际操作,以及前面一节中我们见到的那个translate()函数之后,我们可以详细了解下 …
Qt 学习之路 2(27):渐变
渐变是绘图中很常见的一种功能,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是 …
Qt 学习之路 2(26):反走样
我们在光栅图形显示器上绘制非水平、非垂直的直线或多边形边界时,或多或少会呈现锯齿状外观。这是因为 …
Qt 学习之路 2(25):画刷和画笔
前面一章我们提到,Qt 绘图系统定义了两个绘制时使用的关键属性:画刷和画笔。前者使用QBrush …
Qt 学习之路 2(24):Qt 绘制系统简介
Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制。整个绘图系统基于QPai …
Qt 学习之路 2(23):自定义事件
尽管 Qt 已经提供了很多事件,但对于更加千变万化的需求来说,有限的事件都是不够的。例如,我要支 …
Qt 学习之路 2(22):事件总结
Qt 的事件是整个 Qt 框架的核心机制之一,也比较复杂。说它复杂,更多是因为它涉及到的函数众多 …
Qt 学习之路 2(21):事件过滤器
有时候,对象需要查看、甚至要拦截发送到另外对象的事件。例如,对话框可能想要拦截按键事件,不让别的 …
Qt 学习之路 2(20):event()
前面的章节中我们曾经提到event()函数。事件对象创建完毕后,Qt 将这个事件对象传递给QOb …
Qt 学习之路 2(19):事件的接受与忽略
版本: 2012-09-29 2013-04-23 更新有关accept()和ignore()函 …
Qt 学习之路 2(18):事件
事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗 …
Qt 学习之路 2(17):文件对话框
在前面的章节中,我们讨论了 Qt 标准对话框QMessageBox的使用。所谓标准对话框,其实也 …
Qt 学习之路 2(16):深入 Qt5 信号槽新语法
在前面的章节(信号槽和自定义信号槽)中,我们详细介绍了有关 Qt 5 的信号槽新语法。由于这次改 …
Qt 学习之路 2(15):标准对话框 QMessageBox
所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如 …
Qt 学习之路 2(14):对话框数据传递
对话框的出现用于完成一个简单的或者是短期的任务。对话框与主窗口之间的数据交互相当重要。本节将讲解 …
Qt 学习之路 2(13):对话框简介
对话框是 GUI 程序中不可或缺的组成部分。很多不能或者不适合放入主窗口的功能组件都必须放在对话 …
Qt 学习之路 2(12):菜单栏、工具栏和状态栏
在之前的《添加动作》一文中,我们已经了解了,Qt 将用户与界面进行交互的元素抽象为一种“动作”, …
Qt 学习之路 2(11):布局管理器
所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面, …
Qt 学习之路 2(10):对象模型
标准 C++ 对象模型在运行时效率方面卓有成效,但是在某些特定问题域下的静态特性就显得捉襟见肘。 …
Qt 学习之路 2(9):资源文件
上一章节中我们介绍了如何使用QAction添加动作。其中,我们使用QIcon加载了一张 png …
Qt 学习之路 2(8):添加动作
本节,我们将在前面主窗口基础之上,添加菜单和工具栏等的动作。虽然 Qt Creator 已经帮我 …
Qt 学习之路 2(7):MainWindow 简介
前面一篇大致介绍了 Qt 各个模块的相关内容,目的是对 Qt 框架有一个高屋建瓴般的了解。从现在 …
Qt 学习之路 2(6):Qt 模块简介
Qt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改。Qt 5 引入了模块化的概念,将众 …
Qt 学习之路 2(5):自定义信号槽
上一节我们详细分析了connect()函数。使用connect()可以让我们连接系统提供的信号和 …
《Qt 学习之路 2》目录
《Qt 学习之路 2》目录
Qt 学习之路 2(4):信号槽
信号槽是 Qt 框架引以为豪的机制之一。熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有 …
Qt 学习之路 2(3):Hello, world!
想要学习 Qt 开发,首先要搭建 Qt 开发环境。好在现在搭建 Qt 开发环境还是比较简单的。我 …
Qt 学习之路 2(2):Qt 简介
Qt 是一个著名的 C++ 应用程序框架。你并不能说它只是一个 GUI 库,因为 Qt 十分庞大 …
Qt 学习之路 2(1):序
51CTO 上面曾经有过这么一个系列,具体是 Qt 的入门教程。当时强调过,那些文章大致是根据 …
|
|