因为平时很少用QCharts,所以对一些样式自定义的设置不熟悉。本来想添加一个背景图片,结果发现只有setBackgroundBrush这种接口。百度一通之后,只找到个隐藏QChart背景的博客(https://blog.csdn.net/qq_40182127/article/details/82113267)。受到启发,自己一番折腾,总算把背景给设置出来了,原来也挺简单的。
我是参照示例的BarChart来修改的,
首先,给QChart类去掉背景渲染:
chart->setBackgroundVisible(false);
然后,给QChartView加上背景图的样式表就能显示图片了。
setStyleSheet(R"(QGraphicsView{ background-image:url(:/backimg.png);})");
下面是设置前后对比图(完整代码及工程文件链接在本文末尾):
(其实默认样式一般也足够了,不过有时候Ui会有特殊需求)
这里有两个小插曲,一是我把图片url用绝对路径测试了下之后再改回来,居然设置无效(重新构建也不行),把生成的文件删了之后重新生成才正常了;第二个就是,我给QChartView设置样式表,如果填 “QChartView{}” 的话不生效,填他的父类 “QGraphicsView{}” 才有效了。
代码链接:https://github.com/gongjianbo/MyTestCode/tree/master/Qt/TestQt_20190806_QChartsBackground
主要代码:(参照示例的BarChart来修改)
//main.cpp
#include
#include
#include
#include
#include
#include
#include
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//![1]
QBarSet *set0 = new QBarSet("Jane");
QBarSet *set1 = new QBarSet("John");
QBarSet *set2 = new QBarSet("Axel");
QBarSet *set3 = new QBarSet("Mary");
QBarSet *set4 = new QBarSet("Samantha");
*set0
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?