本节对应的视频讲解:B_站_视_频

https://www.bilibili.com/video/BV1YP4y1B7Ex

本节讲解抗锯齿效果

前面实现的效果中,仔细观看能看到明显的锯齿的效果,如下:

此时,可以增加抗锯齿的效果。

1. 关联信号槽

首先,在 widget.cpp 的构造中,为 “抗锯齿” 复选框,关联信号槽

// 抗锯齿
connect(ui->chkAntialiasing, SIGNAL(toggled(bool)), this, SLOT(antialiasChanged()));

2. 声明并实现槽函数

首先,在 widget.h 中声明 antialiasChanged() 槽函数:

class Widget : public QWidget
{private slots:void antialiasChanged();
};

然后,在 widget.cpp 中实现这个槽函数:

void Widget::antialiasChanged()
{ui->paintWidget->setAntialias(ui->chkAntialiasing->isChecked());
}

3. 实现 setAntialias

首先,在 PaintWidget.h 中声明 setAntialias 函数,并定义一个成员变量 mAntialias,如下:

class PaintWidget : public QWidget
{public slots:void setAntialias(bool antialias);private:bool mAntialias;
};

然后,在 PaintWidget.cpp 中,实现 setAntialias 函数:

void PaintWidget::setAntialias(bool antialias)
{this->mAntialias = antialias;update();
}

最后,由于上边调用了 update 之后,系统会自动调用 paintEvent

因此,在 paintEvent 中增加抗锯齿,来完成绘制

void PaintWidget::paintEvent(QPaintEvent *event)
{// 创建画家类的对象,参数为绘图设备。指定为this,表示在当前窗口绘制QPainter painter(this);painter.setPen(mPen);painter.setBrush(mBrush);if ( mAntialias ) {painter.setRenderHint(QPainter::Antialiasing, true);}
}

【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.13 抗锯齿相关推荐

  1. 【QT开发笔记-基础篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget

    本节对应的视频讲解:B_站_链_接 QTableWidget 是 Qt 中的表格控件,可以行列的形式来展示数据 1. 属性和方法 QTableWidget 有很多属性和方法,完整的可查看帮助文档. 在 ...

  2. 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.1 为什么要学习Qt

    本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1334y1776z Qt 是一个跨平台的 C++ 图形用户界面应用程序框架 Qt 为应用程序开发 ...

  3. 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.4 项目构建流程

    本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1cW4y1y7Lw 在上一节课中,我们新建了第一个 Qt 工程,其中包括 5 个文件: Hell ...

  4. 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.2 搭建Qt开发环境

    本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1Pr4y1x7fh Qt 开发主要有两种开发环境 Qt Creator 它是 Qt 官方提供的开 ...

  5. 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.3 新建Qt工程

    本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1UA4y1d7V2 学习任何的编程语言,创建的第一工程都是打印 hello world,学习 Q ...

  6. 【QT开发笔记-基础篇】| 第二章 常用控件 | 2.2 按钮 QPushButton

    本节对应的视频讲解:B_站_视_频 https://www.bilibili.com/video/BV1zG411s7LG QPushButton 是 Qt 中的按钮,通常用于响应用户的点击,然后执行 ...

  7. 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.7 如何连接信号槽

    本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1mN4y137H6 信号和槽要建立连接,本质上是通过 `connect` 函数来连接实现的. 但 ...

  8. 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.6 自定义信号槽

    本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1gA4y1d7gz 上节课,我们讲解了标准信号槽,标准信号槽中,信号和槽函数,都是 Qt 框架定 ...

  9. 【QT开发笔记-基础篇】| 第二章 常用控件 | 2.3 标签 QLabel

    本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1wB4y1B7b7 QLabel 是 Qt 中的标签类,通常用于显示提示性的文本,也可以显示图像 ...

最新文章

  1. 才一年,智能车就不再是新势力专利!
  2. 九度OJ 朋友圈 并查集
  3. Linux 30岁了~我们也老了
  4. html-简单验证、滑块、搜索框
  5. 下列哪个适合做链栈_朋友圈人格图鉴:三天可见 vs 全部可见,哪个更适合做恋人?...
  6. FullCalendar 四:FullCalendar应用——新建日程事件
  7. 红黑树模拟软件_【程序员面试必备】红黑树详细图解
  8. 苹果“撞上”反垄断,围墙花园能否坚挺?
  9. OpenJDK8编码代码三合一:x86/Arm/Mips
  10. 微信小程序搜索排名规则,教你怎么让排名靠前
  11. m4s格式转换mp3_把MP3格式的音频转换成WAV格式
  12. 处理器的排名_齐齐哈尔LPCVD尾气处理器排名推荐
  13. 基于云虚拟机的代码覆盖率
  14. 他用手指玩滑板,居然玩成了国内第一人?
  15. 词袋模型基本原理——DBoW3
  16. 计算机编程语言及C语言简介,编程语言基础:C语言
  17. Vue2.x动态组件的使用实现组件整合大屏展示
  18. 什么是浏览器指纹? 浏览器指纹技术应用有哪些?
  19. 【机器学习】实战系列
  20. 报错java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String解决踩坑

热门文章

  1. OTA 电控信息安全
  2. php curl上传文件到solr,9.Solr4.10.3数据导入(post.jar方式和curl方式)
  3. 章文嵩:滴滴受益于开源,也回馈于开源
  4. JavaScript基础知识点之浏览器交互
  5. 2022年山东省职业院校技能大赛高职组“信息安全管理与评估”赛项竞赛规程
  6. ubuntu 17linux输入法,Ubuntu 17.10如何安装Fcitx五笔拼音输入法
  7. MySQL学习之数据库详解~2021
  8. 在深圳,报考软考你需要了解这些
  9. 磁共振指纹:一种新颖的定量磁共振技术
  10. 【Unity3DRPG入门学习笔记第五卷】MouseManager 鼠标控制人物移动