首页 > 其他分享 >在QT中如何通过QConicalGradient设置渐变

在QT中如何通过QConicalGradient设置渐变

时间:2024-07-03 23:26:38浏览次数:17  
标签:QT gradient 渐变 setColorAt 设置 QConicalGradient Qt

在Qt中,QConicalGradient类用于创建一个锥形渐变,这种渐变是从一个中心点向四周辐射的。你可以设置中心点、渐变角度以及这些角度上对应的颜色。

以下是一个使用QConicalGradient设置渐变的示例代码:

#include <QPainter>  
#include <QConicalGradient>  
#include <QWidget>  
  
class GradientWidget : public QWidget {  
protected:  
    void paintEvent(QPaintEvent *event) override {  
        QPainter painter(this);  
  
        // 创建一个锥形渐变对象  
        QConicalGradient gradient(100, 100, 0.0); // 设置中心点(100, 100)和起始角度0.0(默认向上)  
  
        // 设置渐变角度上对应的颜色  
        gradient.setColorAt(0.0, Qt::red); // 起始角度为红色  
        gradient.setColorAt(0.33, Qt::yellow); // 1/3圆周处为黄色  
        gradient.setColorAt(0.66, Qt::green); // 2/3圆周处为绿色  
        gradient.setColorAt(1.0, Qt::blue); // 终点角度为蓝色(整个圆周)  
  
        // 创建一个画笔并设置渐变  
        QBrush brush(gradient);  
        painter.setBrush(brush);  
  
        // 使用该画笔绘制一个椭圆(或其他形状)来展示渐变效果  
        painter.drawEllipse(50, 50, 200, 200); // 绘制一个椭圆,其中心与渐变中心对齐  
    }  
};  
  
// 在主函数或其他地方创建并使用这个widget  
// ...

在这个示例中,QConicalGradient的构造函数接受三个参数:中心点的x坐标、y坐标和起始角度(以度为单位,顺时针方向)。然后,我们使用setColorAt()方法设置了不同角度上的颜色。在这个例子中,我们从0度(向上)开始,设置了红色、黄色、绿色和蓝色,分别对应0度、120度、240度和360度(或0度,因为颜色在渐变中是循环的)。最后,我们创建了一个QBrush对象,将渐变设置为其纹理,并使用这个画笔绘制了一个椭圆来展示渐变效果。椭圆的中心与渐变的中心对齐,以便更好地展示渐变效果。

标签:QT,gradient,渐变,setColorAt,设置,QConicalGradient,Qt
From: https://blog.csdn.net/YuYao1110/article/details/140164759

相关文章

  • 【实际应用-第七篇 物联网 mqtt模拟实现单向通信 】
    文章目录概要发布方(模拟设备)引入pom回调MqttCallback发布的方法订阅方(模拟服务器)引入pom回调MqttCallback订阅的方法测试结果实际应用概要两个springboot项目,一个作为发布方,一个作为订阅方,模拟设备向服务器发送mqtt请求上报消息,示例使用的是......
  • Qt Creator配置以及使用Git
    QtCreator配置以及使用Git引言一、QtCreator配置git二、QtCreator使用git2.1创建git仓库orgit项目导入Qt2.2配置远端,拉代码or上传代码2.3查看更改2.4更多细节可参考官方文档三、参考的博客以及文档引言QtCreator配置Git之后,可以看作是一个拥有图形用户......
  • CesiumJS【Basic】- #053 绘制渐变填充多边形(Entity方式)-使用canvas
    文章目录绘制渐变填充多边形(Entity方式)-使用canvas1目标2代码2.1main.ts绘制渐变填充多边形(Entity方式)-使用canvas1目标使用Entity方式绘制绘制渐变填充多边形-使用canvas2代码2.1main.tsimport*asCesiumfrom'cesium';constviewer......
  • CesiumJS【Basic】- #054 绘制渐变填充多边形(Entity方式)-使用shader
    文章目录绘制渐变填充多边形(Entity方式)-使用shader1目标2代码2.1main.ts绘制渐变填充多边形(Entity方式)-使用shader1目标使用Entity方式绘制绘制渐变填充多边形-使用shader2代码2.1main.tsimport*asCesiumfrom'cesium';constviewer......
  • qt windeployqt 打包qt程序
    1、windeployqt路径2、增加环境变量3、运行指令windeployqtexe绝对路径--qmldir工程的绝对路径【注意1】最好单独建立一个目录,将exe单独复制进去,因为windeployqt会将依赖的各种文件和库拷贝到exe所在的目录【注意2】--qmldir是一个可选参数,如果没有使用qml则可以不......
  • QTableWidget单元格设置控件居中以及背景颜色问题
    QTableWidget的单元格如果要显示其他控件,可以使用setCellWidget,但是控件没有居中,要想使控件居中,可以先创建一个QWidget对象,并设置布局器,然后将控件放到布局器中,并把这个QWidget对象放到单元格内,但是此时若要设置单元格的背景颜色,QTableWidget只能通过设置QTableWidgetItem的颜色来......
  • 使用qt 获取一张网络图片,并将这张图片显示在qml 上
    #include<QGuiApplication>#include<QQmlApplicationEngine>#include<QNetworkAccessManager>#include<QNetworkReply>#include<QUrl>#include<QImage>#include<QQuickImageProvider>classImageProvider:publicQQuickI......
  • Windows 下安装 Qt 教程
    1.下载安装包进入官网,会出现以下内容:其分别代表着:Name注释snapshots预览版,最新测试中的Qt库和开发工具onlineQt在线安装源official_releases正式发布版,相对稳定的Qt库和开发工具ministro迷你版,针对Android的版本learningQt的文档和示范视......
  • VSCode + Qt + QMake 开发编译环境搭建
    鉴于Qt官方IDE太过难用,VSCode+各种插件功能强大,遂采用VSCode来写Qt项目;本博客在Windows平台进行指导操作,Mac、Linux平台配置方式类似,学习其本质就可。前置准备VSCode,最新版本即可本地Qt环境,版本随意,本文主要针对较老版本使用Qmake构建系统的项目环境变量Qt环境变......
  • Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换
    一、前言说明这个地图组件写了很多年了,最初设计的比较粗糙,最开始只是为了满足项目需要,并没有考虑太多拓展性,比如最初都是按照百度地图写死在代码中,经过这几年大量的现场实际应用,以及大量的用户提出的改进意见,逐渐萌生了彻底重新编写对应地图相关的代码,比如基类子类的设计,各种功能......