6. 分类图显示和保存

一、前言

本文主要运用知识为 1、QTableView控件的代理委托;2、颜色进度条设置;3、openCV的Mat数据的显示问题

本文主要实现功能为:利用QGraphicsView控件显示分类图,并实现相关的放大、缩小、平移等;对QTableView进行委托显示;利用PS绘制进度条,添加资源文件,作为颜色进度条;QGraphicsView显示openCV的Mat数据;双击QtableView设置自定义颜色。

二、QTableView控件委托

运用的是QItemDelegate类,实现功能如下,对控件的的列添加背景色,代码如下:

 1 #include "colorDegete.h"
 2 #include <QPixmap>
 3 #include <QApplication>
 4 #include <QRect>
 5 #include <QVector>
 6 #include <QDebug>
 7
 8
 9 colorDegete::colorDegete(QObject *parent)
10     :QItemDelegate(parent)
11 {
12
13 }
14
15 colorDegete::~colorDegete()
16 {
17
18 }
19
20 void colorDegete::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
21 {
22     QString data = index.data().toString();
23     QStringList list1 = data.split(",",QString::SkipEmptyParts);
24     int r = list1.at(0).toInt();
25     int g = list1.at(1).toInt();
26     int b = list1.at(2).toInt();
27     QColor color(r,g,b);
28     QRect rect = option.rect;
29     QPixmap pixmap(rect.width(),rect.height());
30     pixmap.fill(color);
31     QApplication::style()->drawItemPixmap(painter,option.rect,Qt::AlignCenter,QPixmap(pixmap));
32 }

View Code

三、颜色进度条设置

利用PS绘制颜色进度条文件,保存为jpg格式,等,然后加入资源文件,利用QCombobox作为ICON添加进入,代码部分如下:

 1     QPixmap icon1(":/colorBar/colorBar/1.jpg");
 2     QPixmap icon2(":/colorBar/colorBar/2.jpg");
 3     QPixmap icon3(":/colorBar/colorBar/3.jpg");
 4     QPixmap icon4(":/colorBar/colorBar/4.jpg");
 5     QPixmap icon5(":/colorBar/colorBar/5.jpg");
 6
 7     ui->colorComboBox->addItem(QIcon(icon1),"");
 8     ui->colorComboBox->addItem(QIcon(icon2),"");
 9     ui->colorComboBox->addItem(QIcon(icon3),"");
10     ui->colorComboBox->addItem(QIcon(icon4),"");
11     ui->colorComboBox->addItem(QIcon(icon5),"");

View Code

四、利用QGraphicsView显示openCV的Mat图像

具体代码如下:

 1 bool classifiedMapView::showClassifiedMap(cv::Mat img)
 2 {
 3     if(img.channels()!=3)
 4         return 0;
 5     if(!img.isContinuous())
 6         return 0;
 7
 8     cv::cvtColor(img,img,CV_BGR2RGB);
 9     qDebug()<<img.channels()<<img.type();
10     QImage image = QImage((const unsigned char*)(img.data),img.cols,img.rows,img.cols*img.channels(),
11                           QImage::Format_RGB888);
12     QGraphicsScene *tmpScene = new QGraphicsScene(this);
13     QGraphicsPixmapItem *imgItem = new QGraphicsPixmapItem(QPixmap::fromImage(image));
14     tmpScene->addItem(imgItem);
15     this->setScene(tmpScene);
16     return 1;
17
18 }

View Code

五、总体效果

posted on 2015-08-16 20:51 机器学习猪 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/zyore2013/p/4734962.html

6. 分类图显示和保存相关推荐

  1. Java通过JfreeChart生成转Base64图片字符串(饼图、折线图、柱状图、折线图-多条、3D柱状图、气泡图、时序图、曲线图、区域图、分布图、联合分类图、双X轴图、K线图、柱状图-横向等图)

    工具类 CreatLineChart.java package DrawLine;import java.awt.BasicStroke; import java.awt.Color; import ...

  2. 《Splunk智能运维实战》——3.11 制作折线图显示项目浏览量和购买量随时间的变化...

    本节书摘来自华章计算机<Splunk智能运维实战>一书中的第3章,第3.11节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克· ...

  3. seaborn系列 (4) | 分类图catplot()

    分类图 分类图 函数原型 参数解读 案例教程 案例地址 本篇是<Seaborn系列>文章的第4篇-分类图. 分类图 分类图catplot() 解析: catplot() 分类图(它是下面8 ...

  4. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  5. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 def mini_XCEPTION(inp ...

  6. Python-OpenCV 笔记1 -- 图像与视频的读取、显示、保存

    Python-OpenCV 笔记1 – 图像与视频的读取.显示.保存 一.图片的读取.显示.保存 1.图片读取 原型: imread (filename, flags=None) 参数: filena ...

  7. 如何用Seaborn描绘柱状图(条形图),箱线图,小提琴图,分类散点图,分面网格分类图,散点图(3)

    柱状图 x = ['金融','农业','制造业','新能源'] y = [163,86,125,58] sns.barplot(x,y) y = ['金融','农业','制造业','新能源'] x = ...

  8. OpenCV与图像处理学习一——图像基础知识、读入、显示、保存图像、灰度转化、通道分离与合并

    OpenCV与图像处理学习一--图像基础知识.读入.显示.保存图像.灰度转化.通道分离与合并 一.图像基础知识 1.1 数字图像的概念 1.2 数字图像的应用 1.3 OpenCV介绍 二.图像属性 ...

  9. Opencv 图片 读取,显示,保存基本操作

    Opencv的图片读取,显示,保存是图片操作的基础,实验用的图片来自于lenan:http://www.lenna.org/ 为了使用方 便,主要是使用opencv的python版本的接口,其官网链接 ...

最新文章

  1. 对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)
  2. 模拟简单计算器及比较大小
  3. 数字图像处理——2D降噪
  4. java相除保留两位小数_Java:Java快速入门
  5. VMware内虚拟机自适应及最大化窗口调整方式
  6. 蓝色简约好看的个人接单HTML源码
  7. #自定义多级菜单_怎么搞定排版中的多级列表问题?
  8. Android开发环境搭建之Eclipse/AndroidStudio
  9. Packt发布了2018年技能提升报告
  10. 【主成分分析法】NLPer的断舍离(下篇)
  11. C++ 中三角函数:sin,cos,asin,acos等
  12. 功率曲线k值_锂电池放电曲线全面解析
  13. python nan变成0_python nan怎么解决
  14. DrawIO 基于MinIO以及OSS私有云方案
  15. meta http-equiv 属性 详解
  16. 第一章 【教育基础知识和基本原理】
  17. 在网站中使用一些字体是否会构成侵权?
  18. sudo: /etc/sudoers.d 可被任何人写
  19. 厉害了,Python也能使用动态链接库
  20. 2008年度回顾:决胜路由应用时代

热门文章

  1. mysql游标 原理解说_mysql存储过程之游标(DECLARE)原理与用法详解
  2. java包装_Java罐密封包装
  3. matlab 运算子图_PHP运算子
  4. jquery 图像滑块_10个很棒的jQuery图像滑块插件
  5. 开课吧:人工智能是后互联时代的发展路径和方向
  6. this 改变this的指向
  7. redmine cannot load such file – rbpdf-font
  8. TensorFlow基础笔记(6) 图像风格化实验
  9. movebase导航
  10. 【DFS】LeetCode 51. N-Queens