QT 基于饼状图的一个抽奖系统
看到一些网站或者App里面有类似积分抽奖的活动,这几天做了一个抽奖软件,感觉效果还阔以!希望对各位同学有所启发
效果图
画饼状图代码
void LotteryLabel::paintPieChart(QPainter* painter)
{//画中间区域背景QRect rc = m_rectCenter;rc.adjust(-3, -3, 3, 3);painter->setBrush(QColor(255, 255, 255));painter->drawEllipse(rc);rc.adjust(3, 3, -3, -3);qreal left = rc.left();qreal top = rc.top();qreal width = rc.width() * 0.5;qreal height = rc.height() * 0.5;qreal textWidth = rc.width() * 0.25;//求每块区域所占的角度大小int count = m_prizes.size();qreal angle = 30.0;if (count > 0){angle = 360 / count;}//画背景(扇形)painter->setPen(Qt::NoPen);#if 0for (int i = 0; i < count; ++i){painter->setBrush(i == m_curIndex ? QColor(255, 18, 2) : m_colorList[i]);painter->drawPie(rc, -angle * i * 16, -angle * 16);}
#elseQPoint ptStart = QPoint(left + width, top + height);QPainterPath path;for (int i = 0; i < count; ++i){path.moveTo(ptStart.x(), ptStart.y());//先移动到圆心path.arcTo(rc, -angle * i, -angle);QBrush brush(i == m_curIndex ? QColor(255, 18, 2) : m_colorList[i]);//painter->setPen(Qt::NoPen);//painter->setBrush(brush);//painter->drawPath(path);painter->fillPath(path, brush);path.clear();}
#endif//画文字(奖品)painter->translate(left + width, top + height);for (int i = 0; i < count; ++i){QRect rc = QRect(textWidth * 0.95, 5, textWidth * 0.95, textWidth * 0.55);//painter->setPen(Qt::NoPen);//painter->setBrush(blink ? QColor(255, 255, 255) : QColor(255, 198, 200));//painter->drawRect(rc);painter->setPen(QPen(Qt::white, 2));QFont font(this->font());font.setFamily(QString::fromUtf8("microsoft yahei"));font.setPixelSize(2);font.setPointSize(16);font.setBold(false);painter->setFont(font);painter->drawText(rc, Qt::AlignCenter, m_prizes.at(i));//painter->rotate(angle);/*int radius = x;int pointSize = font.pointSize();painter->drawText(textRectF(radius * 0.9, pointSize, i * 30), Qt::AlignCenter, QString::number(i));*/}painter->translate(-left - width, -top - height);
}
QT 基于饼状图的一个抽奖系统相关推荐
- QT图表chart-饼状图
QT图表-饼状图 前言 一.使用步骤 首先在项目文件中加入: 其次在头文件添加: widget控件 二.程序 总结 前言 图表功能是QT做数据可视化屏幕的基础,这里我用的是QT再带的chart类来实现 ...
- Plotly.js使用详细介绍(折线图、饼状图、点图、水平条形图、桑基图、树状图、等值线图)
目录 0 写在前面 1 HTML代码 2 折线图 2.1 基本折线图 2.2 复杂折线图 2.2.1 轨迹 2.2.2 布局 3 饼状图 3.1 基本饼状图 3.2 饼图子图 3.3 甜甜圈图 4 点 ...
- D3.js的v5版本入门教程(第十三章)—— 饼状图
D3.js的v5版本入门教程(第十三章) 这一章我们来绘制一个简单的饼状图,我们只绘制构成饼状图基本的元素--扇形.文字,从这一章开始,内容可能有点难理解,因为每一章都会引入比较多的难理解知识点,在这 ...
- Echarst柱状图+饼状图+vue2 商品案例
最终效果展示: echarst非常简单,就是使用的数据需要按照规定的格式,往往是获取数据较难 首先前端,只需要一个div,用ref指定名称,定好宽高,就ok,div多大,图就会自适应多大 <di ...
- QT绘制嵌套的圆饼状图
QT绘制嵌套的圆饼状图 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 使用QPieSeries API创建嵌套的甜甜圈图. 项目技术 qt5.12,qt chart ...
- php生成饼状图 柱形图,求一个饼状图或柱状图php生成类或例子
求一个饼状图或柱状图php生成类或例子 时间:2006/7/19 6:10:04 作者:佚名 人气:268 PHP代码:---------------------------------------- ...
- axure画扇形_如何利用axure制作一个动态的饼状图
话不多少,先放图! 饼状图 首先,我们来分析一下动态效果 1.鼠标悬浮饼状块颜色发生了改变,且尺寸发生了变化 2.鼠标移入不同的块内,提示框随着鼠标的移动而移动,且提示框内的文字发生了变化. 然 ...
- 【饼状图】教你画一个大饼
基本写法 from matplotlib import pyplot as plt #设置大小,分别是 宽 和 高 plt.rcParams['figure.figsize'] = (5,5) #定义 ...
- vue中如何画饼状图
废话不多说,直接上干货. 1.在自己的项目里面安装echarts npm install echarts --s 2.在template中为echarts准备一个容器dom <template& ...
- chartcontrol饼状图属性设置_温故而知新,ggplot2 饼图的几点笔记
其实 ggplot2 并没有类似于 geom_pie() 这样的函数实现饼图的绘制,它是由 geom_bar() 柱状图经过 coord_polar() 极坐标弯曲从而得到的. 对于为什么 ggp ...
最新文章
- 解题报告:luogu P3469 [POI2008]BLO-Blockade(割点判定 + 思维计算)
- [置顶] mmog游戏开发之业务篇
- python用方括号提取字符中的数值_python 从字符串中提取数值
- journal of systems science and complexity
- python爬虫教程:爬虫的基本流程
- 数学学渣的福利,看看图就能学会的机器学习
- Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment
- 搞了这么久的产品,终于看清了真相
- C/C++定时器制作
- axios在派遣方法时候的异步
- 塞内卡学院实现开源的价值
- 经典Java-SpringCloud面试题
- OpenCV彩色目标跟踪
- Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat)
- 应运而生的环保APP
- 鼠标滑过卡片的上浮效果
- 笔记本购机测试软件大全
- CentOS7.6系统安装步骤
- 百度编辑器抓取微信图片并替换内容
- 三,c程序的编辑,编译,链接和运行