看到一些网站或者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 基于饼状图的一个抽奖系统相关推荐

  1. QT图表chart-饼状图

    QT图表-饼状图 前言 一.使用步骤 首先在项目文件中加入: 其次在头文件添加: widget控件 二.程序 总结 前言 图表功能是QT做数据可视化屏幕的基础,这里我用的是QT再带的chart类来实现 ...

  2. Plotly.js使用详细介绍(折线图、饼状图、点图、水平条形图、桑基图、树状图、等值线图)

    目录 0 写在前面 1 HTML代码 2 折线图 2.1 基本折线图 2.2 复杂折线图 2.2.1 轨迹 2.2.2 布局 3 饼状图 3.1 基本饼状图 3.2 饼图子图 3.3 甜甜圈图 4 点 ...

  3. D3.js的v5版本入门教程(第十三章)—— 饼状图

    D3.js的v5版本入门教程(第十三章) 这一章我们来绘制一个简单的饼状图,我们只绘制构成饼状图基本的元素--扇形.文字,从这一章开始,内容可能有点难理解,因为每一章都会引入比较多的难理解知识点,在这 ...

  4. Echarst柱状图+饼状图+vue2 商品案例

    最终效果展示: echarst非常简单,就是使用的数据需要按照规定的格式,往往是获取数据较难 首先前端,只需要一个div,用ref指定名称,定好宽高,就ok,div多大,图就会自适应多大 <di ...

  5. QT绘制嵌套的圆饼状图

    QT绘制嵌套的圆饼状图 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 使用QPieSeries API创建嵌套的甜甜圈图. 项目技术 qt5.12,qt chart ...

  6. php生成饼状图 柱形图,求一个饼状图或柱状图php生成类或例子

    求一个饼状图或柱状图php生成类或例子 时间:2006/7/19 6:10:04 作者:佚名 人气:268 PHP代码:---------------------------------------- ...

  7. axure画扇形_如何利用axure制作一个动态的饼状图

    话不多少,先放图! 饼状图 首先,我们来分析一下动态效果 1.鼠标悬浮饼状块颜色发生了改变,且尺寸发生了变化 2.鼠标移入不同的块内,提示框随着鼠标的移动而移动,且提示框内的文字发生了变化.​ ​然 ...

  8. 【饼状图】教你画一个大饼

    基本写法 from matplotlib import pyplot as plt #设置大小,分别是 宽 和 高 plt.rcParams['figure.figsize'] = (5,5) #定义 ...

  9. vue中如何画饼状图

    废话不多说,直接上干货. 1.在自己的项目里面安装echarts npm install echarts --s 2.在template中为echarts准备一个容器dom <template& ...

  10. chartcontrol饼状图属性设置_温故而知新,ggplot2 饼图的几点笔记

    其实 ggplot2 并没有类似于 geom_pie() 这样的函数实现饼图的绘制,它是由  geom_bar() 柱状图经过  coord_polar() 极坐标弯曲从而得到的. 对于为什么 ggp ...

最新文章

  1. 解题报告:luogu P3469 [POI2008]BLO-Blockade(割点判定 + 思维计算)
  2. [置顶] mmog游戏开发之业务篇
  3. python用方括号提取字符中的数值_python 从字符串中提取数值
  4. journal of systems science and complexity
  5. python爬虫教程:爬虫的基本流程
  6. 数学学渣的福利,看看图就能学会的机器学习
  7. Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment
  8. 搞了这么久的产品,终于看清了真相
  9. C/C++定时器制作
  10. axios在派遣方法时候的异步
  11. 塞内卡学院实现开源的价值
  12. 经典Java-SpringCloud面试题
  13. OpenCV彩色目标跟踪
  14. Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat)
  15. 应运而生的环保APP
  16. 鼠标滑过卡片的上浮效果
  17. 笔记本购机测试软件大全
  18. CentOS7.6系统安装步骤
  19. 百度编辑器抓取微信图片并替换内容
  20. 三,c程序的编辑,编译,链接和运行

热门文章

  1. npm init @vitejs/app 到底干了什么
  2. 适合Java新手练手的小项目!
  3. 计算机组成原理课后答案蒋本,计算机组成原理习题答案(蒋本珊).doc
  4. IDEA官方中文版插件
  5. 2018年高教社杯全国大学生数学建模竞赛A题解题思路
  6. java菜鸟教程+视频笔记
  7. visio保存高清图片
  8. 展讯平台实现维吾尔语的几种方法
  9. layuimini tab切换刷新解决方案
  10. 毕业设计 - 题目 :基于大数据的疫情数据分析及可视化系统