标签:

Qt5

下面我们继续上一章的内容。在上一章中,我们已经完成了地图的设计,当然是相当简单的。在我们的游戏中,另外的主角便是蛇和食物。下面我们便开始这部分的开发。 我们的地图是建立在QGraphicsScene的基础之上的,所以,里面的对象应该是QGraphicsItem实例。通常,我们会把所有的图形元素(这里便是游戏中需要的对象,例如蛇、食物等)设计为QGraphicsItem的子类,在这个类中添加绘制自身 ...

59 评论 8.2K 次阅读

原文地址:http://woboq.com/blog/how-qt-signals-slots-work-part2-qt5.html 这是解释 Qt 信号槽机制的上一篇文章的后续。在上一篇文章中,我们了解到旧的信号槽语法的一般原理以及如何实现的。在本章,我们将看看 Qt5 基于函数指针的新语法是如何实现的。 Qt5 的新语法 新语法看起来是这样的: 为什么要有新语法? 我们已经在介绍新语法的文章 ...

4 评论 2.6K 次阅读

经过前面一段时间的学习,我们已经了解到有关 Qt 相当多的知识。现在,我们将把前面所讲过的知识综合起来,开发一个贪吃蛇游戏。游戏很简单,相信大家都有见过,多多少少也都玩过。我们在实现这个贪吃蛇游戏时,会利用到事件系统、Graphics View Framework、QPainter 等相关内容,也会了解到一个游戏所具有的一些特性,比如游戏循环等,在 Qt 中如何体现出来。当然,最重要的是,通过一个 ...

50 评论 7.4K 次阅读

Graphics View 提供了一种接口,用于管理大量自定义的 2D 图形元素,并与之进行交互;还提供了用于将这些元素进行可视化显示的观察组件,并支持缩放和旋转。我们通常所说的 Linux 的 KDE 桌面环境,就是建立在 Graphics View 基础之上的(尽管新版本的 KDE 有向 QML 迁移的趋势)。 Graphics View 框架包含了一套完整的事件体系,可以用于与场景中的元素进 ...

27 评论 5.4K 次阅读

Qt 信号槽的实现

by 豆子

原文地址:http://woboq.com/blog/how-qt-signals-slots-work.html Qt 因其信号槽机制闻名遐迩。但是信号槽是怎样工作的?本文将解释 QObject 和 QMetaObject 的内部实现,以及探索如何在这种机制下实现信号槽。 本文将展示 Qt5 的部分代码,不过有时会为格式化以及简洁性而有所修改。

5 评论 2.8K 次阅读

在经历过实际操作,以及前面一节中我们见到的那个translate()函数之后,我们可以详细了解下 Qt 的坐标系统了。泛泛而谈坐标系统,有时候会觉得枯燥无味,难以理解,好在现在我们已经有了基础。 坐标系统是由QPainter控制的。我们前面说过,QPaintDevice、QPaintEngine和QPainter是 Qt 绘制系统的三个核心类。QPainter用于进行绘制的实际操作;QPaintD ...

65 评论 8.4K 次阅读

渐变是绘图中很常见的一种功能,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子变成另一种颜色。渐变的算法比较复杂,写得不好的话效率会很低,好在很多绘图系统都内置了渐变的功能,Qt 也不例外。渐变一般是用在填充里面的,所以,设置渐变是在QBrush里面。

17 评论 4.1K 次阅读

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2