当前位置: 首页 > news >正文

前端网站demo百度免费seo

前端网站demo,百度免费seo,省技能大赛网站开发方案,做的好的网站着陆页QPen QPen 是 Qt 框架中用于定义绘图时使用的画笔属性的类。在使用 QPainter 进行 2D 绘图时,QPen 可以控制线条的外观,比如线条的颜色、宽度、样式(如实线、虚线等)、端点样式(如方形端点、圆形端点等)和…

QPen

QPen 是 Qt 框架中用于定义绘图时使用的画笔属性的类。在使用 QPainter 进行 2D 绘图时,QPen 可以控制线条的外观,比如线条的颜色、宽度、样式(如实线、虚线等)、端点样式(如方形端点、圆形端点等)和连接样式(如斜接、圆角连接等)。

主要属性

颜色(QColor):用于指定线条的颜色。可以使用预定义的颜色(如 Qt::red、Qt::blue 等),也可以自定义 RGB 值。
宽度(qreal):指定线条的宽度,单位通常是像素。
样式(Qt::PenStyle):定义线条的样式,例如实线(Qt::SolidLine)、虚线(Qt::DashLine)、点线(Qt::DotLine)等。
端点样式(Qt::PenCapStyle):确定线条端点的外观,如方形端点(Qt::SquareCap)、圆形端点(Qt::RoundCap)等。
连接样式(Qt::PenJoinStyle):用于设置两条线条连接处的样式,如斜接(Qt::MiterJoin)、圆角连接(Qt::RoundJoin)等。

#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QPainterPath>class PenExampleWidget : public QWidget {
protected:void paintEvent(QPaintEvent *event) override {Q_UNUSED(event);QPainter painter(this);// 创建不同属性的 QPen 对象并绘制线条// 1. 红色实线,宽度为 2 像素QPen pen1(Qt::red);pen1.setWidth(2);painter.setPen(pen1);painter.drawLine(20, 20, 200, 20);// 2. 蓝色虚线,宽度为 3 像素QPen pen2(Qt::blue);pen2.setWidth(3);pen2.setStyle(Qt::DashLine);painter.setPen(pen2);painter.drawLine(20, 50, 200, 50);// 3. 绿色点线,宽度为 4 像素,圆形端点QPen pen3(Qt::green);pen3.setWidth(4);pen3.setStyle(Qt::DotLine);pen3.setCapStyle(Qt::RoundCap);painter.setPen(pen3);painter.drawLine(20, 80, 200, 80);// 4. 紫色实线,宽度为 5 像素,圆角连接QPen pen4(Qt::magenta);pen4.setWidth(5);pen4.setJoinStyle(Qt::RoundJoin);QPainterPath path;path.moveTo(20, 110);path.lineTo(100, 110);path.lineTo(100, 200);painter.setPen(pen4);painter.drawPath(path);}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);PenExampleWidget widget;widget.setWindowTitle("QPen Example");widget.resize(300, 250);widget.show();return app.exec();
}

头文件包含:
QApplication:管理 Qt 应用程序的资源和事件循环。
QWidget:作为窗口的基类。
QPainter:用于实际的绘图操作。
QPen:用于定义画笔的属性。
自定义窗口类 PenExampleWidget:
继承自 QWidget,并重写 paintEvent 函数,在该函数中进行绘图操作。
paintEvent 函数:
红色实线:创建 pen1,设置颜色为红色,宽度为 2 像素,然后使用 painter.setPen(pen1) 设置画笔,最后绘制一条水平直线。
蓝色虚线:创建 pen2,设置颜色为蓝色,宽度为 3 像素,样式为虚线(Qt::DashLine),再设置画笔并绘制直线。
绿色点线:创建 pen3,设置颜色为绿色,宽度为 4 像素,样式为点线(Qt::DotLine),端点样式为圆形(Qt::RoundCap),然后绘制直线。
紫色实线及圆角连接:创建 pen4,设置颜色为紫色,宽度为 5 像素,连接样式为圆角连接(Qt::RoundJoin)。使用 QPainterPath 创建一个路径,包含两条线段,最后使用设置好的画笔绘制该路径。
主函数:
创建 QApplication 对象,启动应用程序。
创建 PenExampleWidget 实例,设置窗口标题和大小,并显示窗口。
调用 app.exec() 进入事件循环,等待用户操作。
在这里插入图片描述

看到窗口中绘制了四条不同样式的线条,直观展示了 QPen 不同属性的效果。

QBrush

QBrush 是 Qt 框架中用于定义填充图案和颜色的类,在使用 QPainter 进行 2D 绘图时,QBrush 可用于填充各种图形(如矩形、椭圆等),控制图形内部的颜色和填充样式。

主要属性

颜色(QColor):指定填充的颜色,可以使用预定义的颜色(如 Qt::red、Qt::blue 等),也可以通过 RGB 值自定义颜色。
样式(Qt::BrushStyle):定义填充的样式,常见的样式有:
Qt::SolidPattern:实心填充,使用指定的颜色完全填充图形。
Qt::Dense1Pattern - Qt::Dense7Pattern:不同密度的疏密填充图案。
Qt::HorPattern、Qt::VerPattern、Qt::CrossPattern 等:水平、垂直、交叉等线条图案。
渐变(QGradient):除了纯色填充,QBrush 还支持使用渐变填充,如线性渐变(QLinearGradient)、径向渐变(QRadialGradient)和锥形渐变(QConicalGradient)。

#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QBrush>
#include <QLinearGradient>class BrushExampleWidget : public QWidget {
protected:void paintEvent(QPaintEvent *event) override {Q_UNUSED(event);QPainter painter(this);// 1. 实心填充QBrush solidBrush(Qt::red, Qt::SolidPattern);painter.setBrush(solidBrush);painter.drawRect(20, 20, 100, 100);// 2. 疏密填充QBrush denseBrush(Qt::blue, Qt::Dense3Pattern);painter.setBrush(denseBrush);painter.drawRect(140, 20, 100, 100);// 3. 线性渐变填充QLinearGradient linearGradient(20, 140, 120, 140);linearGradient.setColorAt(0.0, Qt::green);linearGradient.setColorAt(1.0, Qt::yellow);QBrush gradientBrush(linearGradient);painter.setBrush(gradientBrush);painter.drawRect(20, 140, 100, 100);}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);BrushExampleWidget widget;widget.setWindowTitle("QBrush Example");widget.resize(260, 260);widget.show();return app.exec();
}

头文件包含
QApplication:管理 Qt 应用程序的资源和事件循环。
QWidget:作为窗口的基类。
QPainter:用于实际的绘图操作。
QBrush:用于定义填充的属性。
QLinearGradient:用于创建线性渐变。
2. 自定义窗口类 BrushExampleWidget
继承自 QWidget,并重写 paintEvent 函数,在该函数中进行绘图操作。
3. paintEvent 函数
实心填充:
创建 solidBrush,使用红色(Qt::red)和实心填充样式(Qt::SolidPattern)。
使用 painter.setBrush(solidBrush) 设置画刷,然后使用 painter.drawRect 绘制一个矩形,该矩形将被红色实心填充。
疏密填充:
创建 denseBrush,使用蓝色(Qt::blue)和 Qt::Dense3Pattern 疏密填充样式。
设置画刷并绘制另一个矩形,该矩形将显示为蓝色的疏密填充效果。
线性渐变填充:
创建 linearGradient 线性渐变对象,设置起始点和结束点,以及渐变的颜色停止点(从绿色到黄色)。
使用 gradientBrush 画刷将线性渐变应用到填充中。
设置画刷并绘制第三个矩形,该矩形将显示为从绿色到黄色的线性渐变填充效果。
4. 主函数
创建 QApplication 对象,启动应用程序。
创建 BrushExampleWidget 实例,设置窗口标题和大小,并显示窗口。
调用 app.exec() 进入事件循环,等待用户操作。

在这里插入图片描述

看到窗口中绘制了三个矩形,分别展示了实心填充、疏密填充和线性渐变填充的效果。

与图形抗锯齿的关联

#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QBrush>class AntialiasingExampleWidget : public QWidget {
protected:void paintEvent(QPaintEvent *event) override {Q_UNUSED(event);QPainter painter(this);// 不开启抗锯齿绘制椭圆QPen pen1(Qt::red, 2);QBrush brush1(Qt::yellow, Qt::SolidPattern);painter.setPen(pen1);painter.setBrush(brush1);painter.drawEllipse(20, 20, 100, 100);// 开启抗锯齿绘制椭圆painter.setRenderHint(QPainter::Antialiasing);QPen pen2(Qt::blue, 2);QBrush brush2(Qt::green, Qt::SolidPattern);painter.setPen(pen2);painter.setBrush(brush2);painter.drawEllipse(150, 20, 100, 100);}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);AntialiasingExampleWidget widget;widget.setWindowTitle("Antialiasing Example");widget.resize(300, 150);widget.show();return app.exec();
}

包含了必要的 Qt 头文件,分别用于管理应用程序、创建窗口、进行绘图操作、设置
AntialiasingExampleWidget
继承自 QWidget 并重写 paintEvent 函数,在该函数中进行绘图操作。
创建一个红色、宽度为 2 像素的 QPen 和一个黄色实心填充的 QBrush,然后使用 QPainter 在坐标 (20, 20) 处绘制一个宽度和高度均为 100 的椭圆,此时未开启抗锯齿功能。
接着,使用 setRenderHint(QPainter::Antialiasing) 开启抗锯齿功能。创建一个蓝色、宽度为 2 像素的 QPen 和一个绿色实心填充的 QBrush,然后在坐标 (150, 20) 处绘制另一个宽度和高度均为 100 的椭圆。
创建 QApplication 对象来管理应用程序,创建 AntialiasingExampleWidget 窗口实例,设置窗口标题和大小,显示窗口并进入应用程序的事件循环。
在这里插入图片描述
看到窗口中绘制了两个椭圆,开启抗锯齿的椭圆边缘会更加平滑,而未开启抗锯齿的椭圆边缘可能会有锯齿状。

http://www.hengruixuexiao.com/news/52709.html

相关文章:

  • 做的最好的政府部门网站seo排名优化怎么样
  • 二手房发布网站怎么做手机百度收录提交入口
  • 主流的网站建设的软件株洲seo
  • 连云港网站建设 连云港网站制作东莞百度seo哪里强
  • app手机网站模板免费下载职业培训机构资质
  • 汕头免费建站哪里有长沙建站seo公司
  • 商务部市场建设司网站镇江百度推广公司
  • 网站建设优化多少钱互动营销公司
  • 莆田建站服务seo快速排名点击
  • 用wordpress 扒站东莞企业网站排名优化
  • 做推广一般那些网站比较好企业网站seo案例
  • 在vs上用c 做登录网站宁波网络推广产品服务
  • sns社交网站有哪些网站链接推广工具
  • 做网站需要找什么客户百度推广网站一年多少钱
  • 学生做爰网站四川网站seo
  • 人工智能教育培训机构排名免费seo提交工具
  • 网站内容建设招标北京互联网营销公司
  • 免费国外b2b网站大全点点站长工具
  • 服装电子商务网站有哪些网页制作软件下载
  • php网站开发实例教程 传智播客吴江seo网站优化软件
  • 菏泽网站建设价位百度的排名规则详解
  • seo的基本内容优化大师怎么下载
  • 做网站app要多少钱第三方网站流量统计
  • 上海网站建设哪个平台好台州seo
  • 重庆装修公司哪家口碑最好信阳seo公司
  • 网站建设属于软件开发网店培训骗局
  • 成都专业的网站设计公司网络宣传怎么做
  • 银川网站建设优化网站seo
  • 租房信息网站建设域名查询网址
  • 北京自助模板建站杭州seo排名