QtCharts:给QChartView添加背景图片
因为平时很少用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 <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QBarSeries>
#include <QtCharts/QBarSet>
#include <QtCharts/QLegend>
#include <QtCharts/QBarCategoryAxis>QT_CHARTS_USE_NAMESPACEint 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 << 1 << 2 << 3 << 4 << 5 << 6;*set1 << 5 << 0 << 0 << 4 << 0 << 7;*set2 << 3 << 5 << 8 << 13 << 8 << 5;*set3 << 5 << 6 << 7 << 3 << 4 << 5;*set4 << 9 << 7 << 5 << 3 << 1 << 2;
//![1]//![2]QBarSeries *series = new QBarSeries();series->append(set0);series->append(set1);series->append(set2);series->append(set3);series->append(set4);//![2]//![3]QChart *chart = new QChart();chart->addSeries(series);chart->setTheme(QChart::ChartThemeQt);chart->setTitle("Simple barchart example");chart->setAnimationOptions(QChart::SeriesAnimations);chart->setBackgroundVisible(false);//chart->setBackgroundBrush(QBrush("darkCyan"));
//![3]//![4]QStringList categories;categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";QBarCategoryAxis *axis = new QBarCategoryAxis();axis->append(categories);chart->createDefaultAxes();chart->setAxisX(axis, series);
//![4]//![5]chart->legend()->setVisible(true);chart->legend()->setAlignment(Qt::AlignBottom);
//![5]//![6]QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);//chartView->setContentsMargins(0,10,0,10);//chartView->setBackgroundBrush(QBrush(Qt::yellow));//chartView->setStyleSheet("");//chartView->setBackgroundBrush(Qt::transparent);//![6]//![7]QMainWindow window;window.setCentralWidget(chartView);window.setContentsMargins(10,10,10,10);window.setStyleSheet(R"(QMainWindow{ background-color:green;}QMainWindow QWidget{ background-color:cyan;}QGraphicsView{ background-image:url(:/backimg.png);})");window.resize(420, 300);window.show();
//![7]return a.exec();
}
QtCharts:给QChartView添加背景图片相关推荐
- java 添加图片背景_java添加背景图片
总结:我们通常实现添加背景图片很容易,但是再添加按钮组件就会覆盖图片.原因是: 有先后啊.setlayout();与布局有很大关系 请调试代码的时候,仔细揣摩.我晕了 还可以添加文本框,密码框 fra ...
- VC中为对话框添加背景图片
From: http://blog.ezcn8.com/2011/06/11/vc%E4%B8%AD%E4%B8%BA%E5%AF%B9%E8%AF%9D%E6%A1%86%E6%B7%BB%E5%8 ...
- .net的label的背景如何设置成为透明_css如何设置背景图片?background属性添加背景图片...
在前端开发过程中,为了页面的美观,往往都会给html页面添加背景图片.那么如何利用css设置html中用图片做背景?本章就给大家介绍css怎样设置背景图片.有一定的参考价值,有需要的朋友可以参考一下, ...
- java添加背景图片_Java怎么添加背景图片
首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; im ...
- winformbutton边框怎么改_C#(winform)为button添加背景图片,并去掉各种边框
1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用 Button.Image = "" ...
- MFC中 给基于CFormView的单文档添加背景图片
关于基于CFormView的单文档应用程序,添加一个图片背景的方法之一如下: 下面是利用LoadImage实现.(先在程序目录中添加背景图片back.bmp) 1.在view类中添加类成员变量:(为C ...
- 计算机wold标题文字加背景,office word文档添加背景图片以及背景颜色来美化枯燥乏味的文字...
在浏览网页的时候,遇到各式各样的好看图片是常用的事,现在的需求就是如何将这些看似比较不错的图片设置为Word的文档背景.设置背景的目的是为了美化文字的同时还可以为文档增姿添彩.看到这里大家是不是有点迫 ...
- android 视频做背景图片,视频后面怎么加背景图片?安卓手机给视频添加背景图片的方法...
狸窝是帮助用户解决问题 提供教程解决方案 在这个过程中有使用我们自己开发的软件 也有网上找的工具 只要帮助用户解决问题就好!同意则往下继续了解学习 ... 注意此教程方案是:『安卓手机端教程方案』.很 ...
- c语言mfc怎么插入背景图片,MFC 对话框添加背景图片详细过程(两种方法)
给对话框添加背景图片方法很多,在此贴出两种很常见的方法.一种是通过读取位图资源显示位图(BitMap) step: 1.创建内存设备上下文: 2.选择位图,将其装入内存设备上下文: 3.使用BitBl ...
最新文章
- Mongoose provide access to previous value of property in pre('save')
- Q六娱乐网整站源码分享
- 逆天了!小米将首发一亿像素手机
- 目前8岁女儿上的课程
- 14 MySQL--事务函数与流程控制
- [转]如何使用BackTrack破解WIFI无线网络的WEP密钥
- Fail to queue the whole FAL gap in dataguard一例
- 众信金融获“2015最佳绿色贡献奖”
- 445.两数相加II(力扣leetcode) 博主可答疑该问题
- vs 编译nmake工程
- python 移动文件 覆盖_Python操作文件(删除、复制、移动...)
- [编译原理读书笔记][第4章 语法分析]
- 提高订单成交率的九大技巧,你还不知道吗?
- 笔记:新手SEOer必备的WordPress优化插件
- Python pandas练习Retuns50stocks股票,纯英文ipynb作业20题,100%正确答案
- 【错误处理】RuntimeError: Attempting to deserialize object on CUDA device 1 but torch.cuda.device_count
- 解决win7提示不是正版的问题
- 用友U8 cloud再升级,为成长型集团注入数智新力量
- FMDB的简单应用(4篇)
- Vue3 使用expose让父组件直接修改子组件的值
热门文章
- 计算机课评语与建议,听课评语问题与建议
- 【深扒】深入理解 JavaScript 中的生成器
- 图形学算法-网格细分
- Element UI结合vue-cropper打造图片裁剪上传组件
- man、help帮助命令的使用方法
- docker 报错 Structure needs cleaning
- 自动安装包括ase、phonopy、pymatgen和q-robot工具的anaconda(python)程序
- 量化金融分析AQF(12):配对交易 Pair trading - 考虑时间序列平稳性、协整关系
- 4.监听器Listener
- 怀旧服服务器维护费用,今日《魔兽世界》怀旧服开启付费转服,不得不看的转服规则与条件...