【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.3 初始化数据
创始人
2024-04-19 07:11:36
0

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

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


布局完成后,就可以修改控件的名称,以及添加初始化数据

1. 变量命名

先修改各控件显示的的名称,做到 “见名知义”,方便写代码

修改完控件名称后的效果如下:

image-20221206125232160


2. 初始化数据

为各个控件添加 初始化数据


2.1 形状

为 cboShape 控件,添加形状

首先,在 paintwidget.h 中定义一个枚举类型,表示形状的类型,如下:

enum Shape {_Point,         //_Line,          //_Rect,          //_RoundedRect,   //_Ellipse,       //_Polyline,      //_Polygon,       //_Arc,           //_Pie,           //_Chord,         //_Path,          //_Text,          //_Pixmap
};

然后,在 widget.cpp 的构造中,添加如下初始化代码:

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 1. 形状ui->cboShape->addItem("Point", static_cast(_Point));ui->cboShape->addItem("Line", static_cast(_Line));ui->cboShape->addItem("Rectangle", static_cast(_Rect));ui->cboShape->addItem("Rounded Rectangle", static_cast(_RoundedRect));ui->cboShape->addItem("Ellipse", static_cast(_Ellipse));ui->cboShape->addItem("Arc", static_cast(_Arc));ui->cboShape->addItem("Pie", static_cast(_Pie));ui->cboShape->addItem("Chord", static_cast(_Chord));ui->cboShape->addItem("Polyline", static_cast(_Polyline));ui->cboShape->addItem("Polygon", static_cast(_Polygon));ui->cboShape->addItem("Path", static_cast(_Path));ui->cboShape->addItem("Text", static_cast(_Text));ui->cboShape->addItem("Pixmap", static_cast(_Pixmap));
}

2.2 画笔

初始化画笔的属性

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 2. 线宽ui->sbPenWidth->setRange(1, 10);// 3. 线型// 3.1 线型-实线、虚线、点画线等ui->cboPenStyle->addItem("Solid", static_cast(Qt::SolidLine));ui->cboPenStyle->addItem("Dash", static_cast(Qt::DashLine));ui->cboPenStyle->addItem("Dot", static_cast(Qt::DotLine));ui->cboPenStyle->addItem("Dash Dot", static_cast(Qt::DashDotLine));ui->cboPenStyle->addItem("Dash Dot Dot", static_cast(Qt::DashDotDotLine));ui->cboPenStyle->addItem("None", static_cast(Qt::NoPen));// 3.2 线型-线的端点的样式ui->cboPenCap->addItem("Flat", static_cast(Qt::FlatCap));ui->cboPenCap->addItem("Square", static_cast(Qt::SquareCap));ui->cboPenCap->addItem("Round", static_cast(Qt::RoundCap));// 3.3 连接-两根线的连接处的样式ui->cboPenJoin->addItem("Miter", static_cast(Qt::MiterJoin));ui->cboPenJoin->addItem("Bevel", static_cast(Qt::BevelJoin));ui->cboPenJoin->addItem("Round", static_cast(Qt::RoundJoin));
}

2.3 画刷

初始化画刷的属性

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 4. 画刷ui->cboBrushStyle->addItem(tr("Linear Gradient"), static_cast(Qt::LinearGradientPattern));ui->cboBrushStyle->addItem(tr("Radial Gradient"), static_cast(Qt::RadialGradientPattern));ui->cboBrushStyle->addItem(tr("Conical Gradient"), static_cast(Qt::ConicalGradientPattern));ui->cboBrushStyle->addItem(tr("Texture"), static_cast(Qt::TexturePattern));ui->cboBrushStyle->addItem(tr("Solid"), static_cast(Qt::SolidPattern));ui->cboBrushStyle->addItem(tr("Horizontal"), static_cast(Qt::HorPattern));ui->cboBrushStyle->addItem(tr("Vertical"), static_cast(Qt::VerPattern));ui->cboBrushStyle->addItem(tr("Cross"), static_cast(Qt::CrossPattern));ui->cboBrushStyle->addItem(tr("Backward Diagonal"), static_cast(Qt::BDiagPattern));ui->cboBrushStyle->addItem(tr("Forward Diagonal"), static_cast(Qt::FDiagPattern));ui->cboBrushStyle->addItem(tr("Diagonal Cross"), static_cast(Qt::DiagCrossPattern));ui->cboBrushStyle->addItem(tr("Dense 1"), static_cast(Qt::Dense1Pattern));ui->cboBrushStyle->addItem(tr("Dense 2"), static_cast(Qt::Dense2Pattern));ui->cboBrushStyle->addItem(tr("Dense 3"), static_cast(Qt::Dense3Pattern));ui->cboBrushStyle->addItem(tr("Dense 4"), static_cast(Qt::Dense4Pattern));ui->cboBrushStyle->addItem(tr("Dense 5"), static_cast(Qt::Dense5Pattern));ui->cboBrushStyle->addItem(tr("Dense 6"), static_cast(Qt::Dense6Pattern));ui->cboBrushStyle->addItem(tr("Dense 7"), static_cast(Qt::Dense7Pattern));ui->cboBrushStyle->addItem(tr("None"), static_cast(Qt::NoBrush));
}

经过以上的初始化操作,效果如下:

效果


3. 添加资源文件

由于后边有绘制图片,以及将图片作为画刷的填充,因此这里先把图片作为资源添加到工程中来

首先,将包含两种图片文件 brick.png 和 qt-logo.png 的 images 文件夹,拷贝到项目目录下

然后,在项目名称右键,选择 “添加新文件…”,创建一个 painter.qrc 的资源文件:

image-20221207110044703

添加之后的效果,如下:

资源文件效果

添加完毕之后,就可以直接在代码中引用这两个图片了!

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...