Qt 数据可视化之3D图形

Qt 数据可视化之3D图形前段时间在 Qt 事例中看到了 3D 图形 就参考案例 做了一个相似的 demon 不多说了 先看做的两个效果图吧 这里主要讲解第一个 第二个的代码会打包上传 感兴趣可以下载 工程文件 QT datavisualiz main cpp 因为用的是 3D 所以工程文件要加 datavisualiz 主

前段时间在Qt事例中看到了3D图形,就参考案例,做了一个相似的demon.

不多说了,先看做的两个效果图吧。Qt 数据可视化之3D图形

Qt 数据可视化之3D图形

 

这里主要讲解第一个,第二个的代码会打包上传。感兴趣可以下载。

工程文件:

 

 
QT += datavisualization 
SOURCES += main.cpp 

 

主文件:

#include

#include 
  
#include"init_widget.h"
int main(int argc, char *argv[])
{ 
  
 QApplication app(argc, argv);
 Q3DBars bars;
 /*init_widget init(&bars);*/
 bars.setFlags(bars.flags() ^ Qt::FramelessWindowHint);
 bars.rowAxis()->setRange(0, 4); //设置图形坐标范围,row
 bars.columnAxis()->setRange(0, 4);//设置图形坐标范围,colum //其实和cahrt模块很相似,先是创建serial,在创建数据, 
 QBar3DSeries *series = new QBar3DSeries; //创建4组数据。 
 QBarDataRow *data = new QBarDataRow;
 *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
 QBarDataRow *data1 = new QBarDataRow;
 *data1 << 2.9f << 4.5f << 6.5f << 4.0f << 5.2f;
 QBarDataRow *data2 = new QBarDataRow;
 *data2 << 4.7f << 3.3f << 2.5f << 5.6f << 2.9f;
 QBarDataRow *data3 = new QBarDataRow;
 *data3 << 5.0f << 2.8f << 6.5f << 4.9 << 6.8f; //将数据添加进seiral中。 
 series->dataProxy()->addRow(data);
 series->dataProxy()->addRow(data1);
 series->dataProxy()->addRow(data2);
 series->dataProxy()->addRow(data3);
 //将serial加入到3d对象中。 
 bars.addSeries(series); //设置Z轴坐标 
 QValue3DAxis *value=new QValue3DAxis;
 value->setTitle("Average temperature");//设置标题
 value->setTitleVisible(true);//记得默认是false
 value->setSegmentCount(3);//z轴分为3大段
 value->setSubSegmentCount(2);//没大段分为2个空间间隙
 value->setLabelFormat(QString(QStringLiteral("%.2f ") + "C"));//这个就不说了,,,
 value->setLabelAutoRotation(30.0f);//设置标签的角度
 bars.setValueAxis(value); //设置X,Y的坐标 
 QCategory3DAxis *axis=new QCategory3DAxis;
 QStringList list;
 list<<"周一"<<"周二"<<"周三"<<"周四";
 axis->setLabels(list);
 axis->setLabelAutoRotation(30.0f);
 bars.setRowAxis(axis); 
 bars.show();
 /*init.show_widget();*/
 return app.exec();
}

其实和chart模块很相似,

 

1:创建3d对象,

 

Q3DBars bars; 

2:创建数据

 

 

QBar3DSeries *series = new QBar3DSeries;

3:添加数据

 

 

 QBarDataRow *data = new QBarDataRow;
 *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
 QBarDataRow *data1 = new QBarDataRow;
 *data1 << 2.9f << 4.5f << 6.5f << 4.0f << 5.2f;
 QBarDataRow *data2 = new QBarDataRow;
 *data2 << 4.7f << 3.3f << 2.5f << 5.6f << 2.9f;
 QBarDataRow *data3 = new QBarDataRow;
 *data3 << 5.0f << 2.8f << 6.5f << 4.9 << 6.8f;

 

4.将数据添加到数据串中

 

 series->dataProxy()->addRow(data);
 series->dataProxy()->addRow(data1);
 series->dataProxy()->addRow(data2);
 series->dataProxy()->addRow(data3);

5:将数据串加入到3d对象中

 

 

bars.addSeries(series);

 

 

 

6.:显示

bars.show();

 

 

代码地址: https://gitee.com/kamenqing/Three_d_Demon.git

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200026.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:41
下一篇 2026年3月20日 上午11:41


相关推荐

  • SIP协议详解(一)

    SIP协议详解(一)1 SIP 协议介绍 Internet 的许多应用都需要建立和管理一个会话 会话在这里的含义是在参与者之间的数据的交换 由于考虑到参与者的实际情况 这些应用的实现往往是很复杂的 参与者可能是在代理间移动 他们可能可以有多个名字 他们中间的通讯可能是基于不同的媒介 比如文本 多媒体 视频 音频等 有时候是多种媒介一起交互 人们创造了无数种通讯协议应用于实时的多媒体会话数据比如声音 影像 或者

    2026年3月19日
    2
  • oracle删除索引语句_oracle索引

    oracle删除索引语句_oracle索引环境Oracle11gsqldropindex索引名;

    2025年9月12日
    9
  • Java实现AD域登录认证「建议收藏」

    Java实现AD域登录认证「建议收藏」web项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统。其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统。这就是第三方验证。一般有AD域,Ldap,Radius,邮件服务器等。最常用的要数AD域了。因为window系统在国内占据了大量的江山。做起来也很方便。我这篇文章就是写,如何用java去实现AD域的身份验证。好了,直接看代码吧:

    2022年5月16日
    39
  • pip安装scrapy失败_scrapy框架运行

    pip安装scrapy失败_scrapy框架运行错误如图所示,running setup.py install for Twisted…..errorTwisted依赖库安装报错,重新下载手动安装一下下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs注意:看下安装的python是什么版本,我安装的python 3.9.0,就下载cp39,64位的下载安装的版本不对,就会报:Twisted-20.3.0-cp38-cp38-win_amd64.whl is not a support…

    2022年8月18日
    11
  • NandFlash基础知识

    NandFlash基础知识NandFlash 的基础知识

    2026年3月26日
    2
  • 刚开的博客测试下[通俗易懂]

    刚开的博客测试下[通俗易懂];;;;;;;;;——————-iK7VUYG0yF6lS3QNNmW4Gw==tRymiHsi9AbKpr3tTFXxup1GFhuX0czs73gSv/E7b5c=uk29oXxJxAg+D0WGWLg/LaJ5+a4y4SSHbrMB4JywbGg=eIWSkIow/vo+D0WGWLg/LaJ5+a4y4SSHbrMB4JywbGg=pcL609

    2022年7月11日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号