Qt 输入一组数,排序后用柱状图显示

Qt柱状图,需要使用到QChart模块,因此需要在安装Qt时勾选上QChart模块。然后在工程.pro文件中加上 QT += charts

参考代码:

//MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QPushButton>
#include <QLineEdit>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();public slots:void slotBtnClicked();private:Ui::MainWindow *ui;QLineEdit *edit;QPushButton *btn;
};#endif // MAINWINDOW_H
//MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"#include <QtCharts/QChartView>
#include <QtCharts/QBarSeries>
#include <QtCharts/QBarSet>
#include <QtCharts/QLegend>
#include <QtCharts/QBarCategoryAxis>QT_CHARTS_USE_NAMESPACEMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);edit = new QLineEdit(this);edit->move(50,50);edit->resize(300,30);btn = new QPushButton(this);btn->setText(QString::fromLocal8Bit("排序"));btn->move(400,50);btn->resize(100,30);connect(btn, SIGNAL(clicked()), this, SLOT(slotBtnClicked()));this->resize(600,100);}void MainWindow::slotBtnClicked()
{QString str = edit->text();QStringList list = str.split(" ");list.erase(std::remove_if(list.begin(), list.end(), [](const QString& tmp){return tmp.isEmpty();}), list.end());for(int i=0; i<list.count(); i++){for(int j=i+1; j<list.count(); j++){if(list[i].toInt() > list[j].toInt()){QString tmp = list[i];list[i] = list[j];list[j] = tmp;}}}QBarSeries *series = new QBarSeries();for(auto it:list){QBarSet *set = new QBarSet(it);*set << it.toInt();series->append(set);}QChart *chart = new QChart(); // 实例化QChartchart->addSeries(series);    //往Chart里添加serieschart->setTitle(QString::fromLocal8Bit("排序后数据"));  //设置表格头chart->setAnimationOptions(QChart::SeriesAnimations);QStringList categories;  //创建字符串Listcategories << "data";QBarCategoryAxis *axis = new QBarCategoryAxis();   //实例化坐标轴文字标识轴axis->append(categories);   //将字符串列表append到文字标识轴里chart->createDefaultAxes();//创建默认的坐标轴(笛卡尔坐标),一定要有这一句chart->setAxisX(axis, series);//设置坐标轴chart->legend()->setVisible(true); //设置图例为显示状态chart->legend()->setAlignment(Qt::AlignBottom);//设置图例的显示位置在底部//显示容器 QChartViewQChartView *chartView = new QChartView(chart, this);  //添加Chart到QChartView上chartView->setRenderHint(QPainter::Antialiasing);chartView->move(50,100);chartView->resize(600,400);chartView->setVisible(true);this->resize(900,600);
}MainWindow::~MainWindow()
{delete ui;
}

效果图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/206196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模块一:双指针——1089.复写零

文章目录 题目解析算法原理异地原地 代码实现 题目解析 题目链接&#xff1a;1089.复写零 这题的暴力解法还是很简单的&#xff0c;不过这道题因为加了两个限制之后&#xff0c;多了一些细节需要去处理。我们通过一个例子来讲解这道题目&#xff1a; 在这个示例中&#xff0…

EM32DX-C2【C#】站9

1说明: 分布式io,CAN总线,C#上位机二次开发(usb转CAN模块) 2DI: 公共端是: 0V【GND】 X0~X15:自带24v 寄存器地址:0x6100-01 6100H DI输入寄存器 16-bit (16位输入) 00H U8 子索引总数 01H Unsigned16 IN16bit(上传16位输入值)【读DI 15~0】02H Unsigned1…

六个自媒体写作方法,提升自媒体创作收益

在自媒体时代&#xff0c;写作成为了一个不可或缺的技能。特别是对于新手来说&#xff0c;掌握一些有效的写作方法&#xff0c;可以事半功倍&#xff0c;更好地展现个人创意和观点。在这里&#xff0c;我将分享六个适合新手的自媒体写作方法&#xff0c;希望能够为你在写作之路…

ubuntu 20.04.6 desk 安装 初始化

ubuntu 20.04.6 desk 安装 初始化 ssh https://blog.csdn.net/wowocpp/article/details/127470332 sudo apt update sudo apt install openssh-server -y sudo service ssh status 不用配置 就可以连接 sudo vim /etc/ssh/sshd_config sudo service ssh restart sudo servic…

贪心算法背包问题c

在背包问题中&#xff0c;贪心算法通常用来解决0-1背包问题&#xff0c;也就是每种物品都有固定数量&#xff0c;你可以选择拿或者不拿&#xff0c;但不可以拿走部分。以下是一个用C语言实现的贪心算法的例子&#xff1a; #include <stdio.h>#define MAX_N 1000#define …

大数据项目——基于Django/协同过滤算法的房源可视化分析推荐系统的设计与实现

大数据项目——基于Django/协同过滤算法的房源可视化分析推荐系统的设计与实现 技术栈&#xff1a;大数据爬虫/机器学习学习算法/数据分析与挖掘/大数据可视化/Django框架/Mysql数据库 本项目基于 Django框架开发的房屋可视化分析推荐系统。这个系统结合了大数据爬虫、机器学…

递增三元组

遍历三层循环,数据量十分地大,可以找第一行小于第二行的 再找第三行大于第二行的,所有方案的和 通过分析测试样例,111,222,333这三个数存在重复计算。可以想办法存一下每个数的出现次数 如果是111666999.不管1和9怎么变,只要第一行小于6,第二行小于9,答案不变 所以可以想办法存…

如何使用promot提示词的相关总结

了解一下大模型相关知识&#xff1a; 1.大模型是一种大规模的预训练模型&#xff0c;其训练分为几个阶段&#xff0c;包括预训练、微调和强化学习。 2.预训练阶段使用大规模的常识性数据进行训练&#xff0c;以充实模型在特定领域的支持。 3.微调阶段使用与实际业务场景相关性…

如何使用 Oracle SQL Developer 连接 pgvector

如何使用 Oracle SQL Developer 连接 pgvector 1. 下载 postgresql 的 jdbc 驱动2. Oracle SQL Developer 配置第三方驱动3. Oracle SQL Developer 配置 postgres 连接 1. 下载 postgresql 的 jdbc 驱动 访问 https://jdbc.postgresql.org/download/&#xff0c;下载驱动&…

力扣刷题day3(移除元素,找出字符串中的第一个不匹配项的下标,搜索插入位置)

题目1&#xff1a;27.移除元素 思路1和代码&#xff1a; //由于题目要求删除数组中等于 val\textit{ val }val 的元素&#xff0c;因此输出数组的长度一定小于等于输入数组的长度&#xff0c;我们可以把输出的数组直接写在输入数组上。可以使用双指针&#xff1a;右指针 righ…

使用Tomcat部署静态项目并处理BUG

--听讲的习惯 Tomcat介绍 tomcat what_Arenaschi的博客-CSDN博客 Tomcat安装及配置教程&#xff08;超详细&#xff09; 那些年我们用过的tomcat_Arenaschi的博客-CSDN博客 简单使用tomcat查看版本信息等_windows查看tomcat版本命令-CSDN博客 Tomcat部署html静态网站的五种方…

银河麒麟安装lnmp,安装chrome。

安装lnmp 下载相关文件 链接&#xff1a;https://pan.baidu.com/s/1YqFLfGpE5DP3Sf_2GsXqNg?pwdptsn –来自百度网盘超级会员V7的分享 上传到服务器 我所选择上传的地方是 /home/npf/nginx-server&#xff0c; php放在跟nginx-server的同级目录 cd / mkdir home /home/npf…

centos7.9 安装java-11版本 (yum安装)

1.查看java的所有版本&#xff1a; yum list java*输出&#xff1a; [rootlocalhost ~]# yum list java* 已加载插件&#xff1a;fastestmirror Loading mirror speeds from cached hostfile* base: mirrors.ustc.edu.cn* centos-sclo-rh: ftp.sjtu.edu.cn* centos-sclo-sclo…

水库大坝安全监测参数与设备

智慧水利中&#xff0c;水库大坝的安全监测必不可少。做好水库大坝的安全监测&#xff0c;是确保水库大坝结构安全和预防灾害的重要手段。对于预防灾害、保护人民生命财产安全、优化工程管理、改进工程设计、保护环境资源和提高公众信任等方面有着重要的意义。 水利水库大坝安全…

CSS、JS文件无法正确加载至页面问题与解决

目录 1. 问题出现 2. 分析与解决 3. 总结 1. 问题出现 自己在写项目是时候&#xff0c;想启动浏览器查询首页面index.jsp的显示效果 预期效果应该是下面这样的&#xff1a; 但是实际上是这样的&#xff1a; 意思也就是说可能是关于CSS、JS相关的引入方面出了问题&#xff…

容器化技术Docker

Docker介绍 官网&#xff1a; docker.io docker.com docker容器历史 和虚拟机一样&#xff0c;容器技术也是一种资源隔离的虚拟化技术。我们追溯它的历史&#xff0c;会发现它的技术雏形早已有之。 容器简史 容器概念始于 1979 年提出的 UNIX chroot&#xff0c;它是一个 U…

创建vue项目:vue脚手架安装、vue-cli安装,vue ui界面创建vue工程(vue2/vue3),安装vue、搭建vue项目开发环境(保姆级教程二)

今天讲解 Windows 如何利用脚手架创建 vue 工程&#xff0c;以及 vue ui 图形化界面搭建 vue 开发环境&#xff0c;这是这个系列的第二章&#xff0c;有什么问题请留言&#xff0c;请点赞收藏&#xff01;&#xff01;&#xff01; 文章目录 1、安装vue-cli脚手架2、vue ui创建…

Linux测试端口连通的几种方式

在很多生产环境中会需要测试端口是否连通&#xff0c;在很多时候生产环境中未安装 telnet 等一系列命令&#xff0c;这就需要我们学习更多的几种测试端口的方式。以下是对常用的几种方式进行整理。 curl curl -v ip:port # 成功 # About to connect() to xxx port xx(#0) # …

python 涉及opencv mediapipe知识,眨眼计数 供初学者参考

基本思路 我们知道正面侦测到人脸时&#xff0c;任意一只眼睛水平方向上的两个特征点构成水平距离&#xff0c;上下两个特征点构成垂直距离 当头像靠近或者远离摄像头时&#xff0c;垂直距离与水平距离的比值基本恒定 根据这一思路 当闭眼时 垂直距离变小 比值固定小于某一个…

火狐,要完了!

在过去几年中&#xff0c;关于Firefox 浏览器的衰落有过不少讨论。目前来说&#xff0c;很多公共的以及私营的大型网站都缺乏对Firefox的适当支持。但是Firefox也多次试图“自救”&#xff0c;甚至就在不久前&#xff0c;Mozilla 通过官博发文&#xff0c;表示 Firefox 在 2023…