基于Qt QPainter自绘扇形统计图
不多说,直接上效果图:
部分代码呈现:
tongjitu.h中
#define MYTONGJITU_H
#include <QWidget>
#include "tongjitu.h"
namespace Ui {
class MyTongJiTu;
}
class MyTongJiTu : public QWidget
{
Q_OBJECT
public:
explicit MyTongJiTu(QWidget *parent = 0);
~MyTongJiTu();
private:
Ui::MyTongJiTu *ui;
tongjitu *tu;
QByteArray ShiYanCunRu();
};
#endif // MYTONGJITU_H
tongjitu.c中
#include "mytongjitu.h"
#include "ui_mytongjitu.h"
MyTongJiTu::MyTongJiTu(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyTongJiTu)
{
ui->setupUi(this);
tu=new tongjitu(this);
tu->SetShuJu(ShiYanCunRu());
tu->show();
}
MyTongJiTu::~MyTongJiTu()
{
delete ui;
}
QByteArray MyTongJiTu::ShiYanCunRu()
{
//实验 可用于外部
QByteArray block; //用于暂存我们要发送的数据
QDataStream out(&block,QIODevice::WriteOnly); //使用数据流写入数据
out.setVersion(QDataStream::Qt_4_6); //设置数据流的版本,客户端和服务器端使用的版本要相同
out<<(quint16) 0;
QStringList lis1;
QList<double> lis2;
lis1<<"足球"<<"篮球"<<"乒乓球"<<"羽毛球"<<"网球"<<"排球"<<"其他";
lis2<<20<<30<<50<<60<<45<<25<<15;
// if(lis1.length()!=lis2.length())return; //注意: 调用时请自行判断
for(int i=0;i<lis1.length();i++)
{
out<<lis1.at(i)<<lis2.at(i);
}
out.device()->seek(0);
out<<(quint16) (block.size() - sizeof(quint16));
return block;
}
部分代码展示完毕:源码点击:https://download.csdn.net/download/lhk_int/10402531
运行效果下载:链接: https://pan.baidu.com/s/13jj-ML0YqGqE1AtXtG-rtw 密码: zcq7
运行效果已经静态编译,下载后双击即可运行