谈一谈Qt的布局技巧

1. 手动拖放通过在 Qt Designer 中手动拖放控件,可以快速实现界面布局,如下图所示: 这种方式非常适合初学者快速上手,但这并不是 Qt 界面布局的全部,因为这种方式仅适合简单的界面布局。

Qt

C++异常之我所见

C++异常所带来的问题当我们在函数中添加一行 throw 语句时,那么该函数的所有调用者中必须至少有一个提供了相应的异常类型捕获行为,否则一旦异常被抛出,程序就会异常终止。例如,函数 f() 调用 g(),而 g() 又调用 h(),并且 h() 抛出一个异常,则 g() 和 f()中必须有一个提供了相应的异常捕获,否则程序会异常终止。 由于异常可以使代码执行流程从任意地方跳出,因此我们还需要付出大量的精力来编写正确的异常安全代码,例如使用 RAII(资源获取即初始化)来保证资源正确释放。如下面的示例,虽然我们在函数 f() 中捕获了异常,避免了程序的异常终止,但异常却中断了函数 g() 的正常执行流程,导致对象 m 没有被正确释放,从而出现了资源泄露。这种情况可能还会变相增加程序的调试难度。

C++语言

有趣的Unicode表情符号

本文了转载和收集了一些常用的 Unicode 表情符号,方便查阅。完整的 Unicode 表情符号可以查询下面的网站: unicode官网emoji列表 wikipedia List_of_emojis 几何图形🞀🞁🞂🞃🞄🞅🞇🞉...

爱折腾

生活家【转载】

《红楼梦》第五十回中,一夜大雪后,贾府大观园的姐妹们一起作诗,众姐妹要王熙凤为即景联诗起个头。王熙凤虽只识得几个字,倒也不扭捏,笑道:“我想下雪必刮北风。昨夜听见了一夜的北风,我有了一句,就是‘一夜北风紧’,可使得?”众人听了,都相视笑道:“这句虽粗...

美文赏析

玩转Qt 2D绘图之画家

在 Qt 2D 世界中,图形基本都由点、线、矩形、多边形、椭圆、圆、折线、曲线、文本、贴图等基本元素辅以着色而构成,而且 QPainter 类已经提供了这些元素的绘制方法,花点时间掌握这些方法,也就掌握了 Qt 2D图形控件的制作,余下的就是勤学多练、孰能生巧了。

Qt

玩转Qt 2D绘图之画家的工具

软件是对现实世界的抽象,在设计软件接口时通常也会参考现实世界来进行设计。 在现实世界中,画家使用画笔、画刷这些工具在宣纸上作画,而在 Qt 中,画家是 QPainter 对象(画家的大脑则是 QPaintEngine),纸张可以是 QPaintDevice 的任何子类对象,如 QWidget、QImage、QPixmap、QGLPixelBuffer 等;在 QPainter 选好纸张后,就可以使用画笔来勾勒物体的轮廓了,Qt 中的画笔是 QPen 对象;画完轮廓后,可能还需要使用画刷来填充轮廓,Qt 中的画刷是 QBrush 对象。

Qt

玩转Qt 2D绘图之坐标系

Qt中提供了强大的 2D 绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,主要基于 QPainter、QPaintDevice和 QPaintEngine 这三个类实现,其中: QPainter执行具体的绘图操作,QPainter 类提供了大量的GUI编程所需的函数,如drawLine、drawImage等。 QPaintDevice 是一个基类,提供绘图设备的抽象接口,它是一个二维空间的抽象,可以使用QPainter在其上进行绘制,常见的继承该类的绘图设备有QImage、QPixmap、QWidget、QOpenGLPaintDevice等。 QPaintEngine 提供了一些抽象接口,用于实现QPainter在不同的设备上进行绘制。QPaintEngine 由 QPaintDevice 创建并管理。

Qt

回顾2D绘图的数学知识

本篇旨在帮助开发人员回顾在2D图形编程中可能会涉及到的数学知识。

编程基础
12322