当前位置: 首页 > news >正文

可以做蛋白三位结构图的网站高端网站建设苏州

可以做蛋白三位结构图的网站,高端网站建设苏州,网页设计与网站建设案例教程,wordpress 绿色额#xff0c;忘记了哪位哲人说过#xff1a;“站在巨人的肩膀上#xff0c;我们能看得更高!”嗯#xff0c;大概就是这个意思了。这两天学习“一去二三里”大神博客里的Qt绘图事件#xff0c;其中有一篇涉及到画圆盘#xff0c;突然有想法#xff0c;写个简易的抽奖小d…额忘记了哪位哲人说过“站在巨人的肩膀上我们能看得更高!”嗯大概就是这个意思了。这两天学习“一去二三里”大神博客里的Qt绘图事件其中有一篇涉及到画圆盘突然有想法写个简易的抽奖小demo。了解了这种抽奖的原理和机制后马丹幸好没有买过各种彩票之类的各种奖项的概率值分明是设置出来的嘛(我程序里是写死了)..好先截个图: 简易能用。。哈哈头文件代码如下: #ifndef WIDGET_H #define WIDGET_H #include QWidget #include QPainter #include QRadialGradient #include QPainterPath #include QTimer #include QDebug #include QMouseEvent #include QPushButton #include QTime #include QLabel #include QLineEdit #include QMap #include QMapIterator #define MAX_CIRCLE 1800 namespace Ui { class Widget; } class Widget : public QWidget {Q_OBJECT public:explicit Widget(QWidget *parent 0);~Widget();void gradientArc(QPainter *painter,int radius,int startAngle,int angleLength,int arcHeight,QRgb color); public slots:void updatePaint();void btnClicked();void reResult(int re);void stopRotate(); signals:void sigResult(int re); private:Ui::Widget *ui;int m_nRotationAngle;int m_nRo;quint32 m_T;QString m_Re;QTimer *m_timer;QTimer *timer;int m_i;QPushButton *m_btn;bool isDefault;enum Awards{Spe 3,First 7,Second 5,Third 2,Luck_Fir 6,Luck_Sec 1,ThanK_Fir 4,Thank_Sec 0,};Awards m_award;QLabel *m_labTr;QLabel *m_labRe;QLineEdit *m_ldeRe;QMapint,QString m_map;QMapint, QString returnResult(int re);static QString showAwards(Awards award);void stopInit();int getRand(); protected:void paintEvent(QPaintEvent *); }; #endif // WIDGET_H 实现文件代码如下: #include widget.h #include ui_widget.hWidget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui-setupUi(this);resize(600,560);setMouseTracking(true);m_nRotationAngle 0;m_i 0;m_T 0;isDefault false;m_btn new QPushButton(this);m_btn-move(273,450);m_labTr new QLabel(tr(抽奖结果:),this);m_labTr-move(223,105);m_ldeRe new QLineEdit(tr(未开始抽奖),this);m_ldeRe-move(293,103);m_ldeRe-setEnabled(false);m_ldeRe-setAlignment(Qt::AlignCenter);m_btn-setText(tr(启动));m_timer new QTimer(this);setStyleSheet(QLabel{font-size:15px;}QLineEdit{color:white;font-size:14px;background-color:#f57ab8;border:1px solid gray;border-radius:5px;}QPushButton{width:36px;height:16px;text-align:center;background-color:#da0000;color:white;border:1px solid gray;border-radius:3px;});connect(m_timer,SIGNAL(timeout()),this,SLOT(updatePaint()));connect(m_btn,SIGNAL(clicked(bool)),this,SLOT(btnClicked()));connect(this,SIGNAL(sigResult(int)),this,SLOT(reResult(int))); }Widget::~Widget() {delete ui; }void Widget::gradientArc(QPainter *painter, int radius, int startAngle,int angleLength, int arcHeight, QRgb color) {QRadialGradient gradient(0,0,radius);gradient.setColorAt(0,Qt::black);gradient.setColorAt(1.0,color);painter-setBrush(gradient);// 1左移1位相当于radius*2 即150*2300//QRectF(-150, -150, 300, 300)QRectF rectf(-radius,-radius,radius 1,radius 1);QPainterPath path;path.arcTo(rectf,startAngle,angleLength);QPainterPath subPath;subPath.addEllipse(rectf.adjusted(arcHeight, arcHeight, -arcHeight, -arcHeight));//subPath.addEllipse(rect.adjusted(arcHeight,arcHeight,-arcHeight,-arcHeight));//path为扇形 subPath为椭圆path - subPath;//// QFont font;// font.setFamily(Microsoft YaHei);// font.setPointSize(14);// painter-setPen(Qt::NoPen);// path.addText(path.pointAtPercent(0.5), font, QStringLiteral(一去丶二三里));painter-setPen(Qt::NoPen);painter-drawPath(path); }void Widget::updatePaint() {if(!isDefault){m_nRotationAngle m_nRotationAngle 33;if(m_nRotationAngle 360){m_nRotationAngle 0;m_T;if(m_T 3){m_nRotationAngle m_nRotationAngle 5;}else if(m_T 5){stopInit();}}}else{m_nRotationAngle m_nRotationAngle 33;if(m_nRotationAngle 360){m_nRotationAngle 0;m_T;if(m_T 3){m_nRotationAngle m_nRotationAngle 5;}else if(m_T 5){stopInit();}}}update(); }void Widget::btnClicked() {if(!m_timer-isActive()){m_timer-start(30);int iRangd getRand();emit sigResult(iRangd);m_T 0;m_ldeRe-setStyleSheet(color:white;);m_ldeRe-setText(tr(正在抽奖...));}else{stopInit();} }void Widget::reResult(int re) {isDefault true;m_map returnResult(re);QMapIteratorint,QString ii(m_map);if(m_map.isEmpty())return;while(ii.hasNext()){ii.next();m_Re ii.value();m_nRo ii.key();} }void Widget::stopRotate() {m_timer-stop(); }QMapint,QString Widget::returnResult(int re) {int ire 0;QMapint,QString map;switch(re){case 0://rand%b-a a--[a,b)的随机数ire (qrand() % (45 - 0) 0);qDebug() 二等奖;map.insert(ire,tr(二等奖));break;case 1:qDebug() 谢谢1;ire (qrand() % (90 - 46) 46);map.insert(ire,tr(谢谢参与));break;case 2:qDebug() 特等奖;ire (qrand() % (135 - 90) 90);map.insert(ire,tr(特等奖));break;case 3:qDebug() 三等奖;ire (qrand() % (180 - 135) 135);map.insert(ire,tr(三等奖));break;case 4:qDebug() 幸运2;ire (qrand() % (225 - 180) 180);map.insert(ire,tr(幸运奖));break;case 5:qDebug() 谢谢2;ire (qrand() % (270 - 225) 225);map.insert(ire,tr(谢谢参与));break;case 6:qDebug() 一等奖;ire (qrand() % (315 - 270) 270);map.insert(ire,tr(一等奖));break;case 7:qDebug() 幸运1;ire (qrand() % (360 - 315) 315);map.insert(ire,tr(幸运奖));break;default:break;}return map; }QString Widget::showAwards(Widget::Awards award) {QString result ;switch(award){case Spe:result 特等奖;break;case First:result 一等奖;break;case Second:result 二等奖;break;case Third:result 三等奖;break;case Luck_Fir:result 幸运奖;break;case Luck_Sec:result 幸运奖;break;case ThanK_Fir:result 谢谢参与;break;case Thank_Sec:result 谢谢参与;break;default:break;}return result; }void Widget::stopInit() {m_timer-stop();m_T 0;isDefault false;int ip m_nRo;int tp m_nRotationAngle;if(ip m_nRotationAngle){for (int i tp; i ip; i){m_nRotationAngle i;}}m_nRotationAngle m_nRo;m_ldeRe-setText(m_Re);update(); }//设置奖项概率 int Widget::getRand() {int re 10;QTime tim QTime::currentTime();qsrand(tim.msec() tim.second()*1000);int rand ((qrand() % 100) 1);qDebug() rand: rand;if(rand 1){re 2;}else if((rand 4) (rand 2 )){re 6;}else if((rand 9) (rand 5 )){re 0;}else if((rand 20) (rand 10 )){re 3;}else if((rand 35) (rand 21 )){re 4;}else if((rand 50) (rand 36 )){re 7;}else if((rand 75) (rand 51 )){re 1;}else if((rand 100) (rand 76 )){re 5;}return re; }void Widget::paintEvent(QPaintEvent *) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing,true);int radius 150;int arcHeight 138;//1 右移一位相当于width() / 2painter.translate(width() 1,height() 1);// painter.rotate(m_nRotationAngle);/** 参数二半径* 参数三开始的角度* 参数四指扫取的角度-顺时针360度 / 8 45度* 参数五圆环的高度* 参数六填充色**/gradientArc(painter,radius,0,45,arcHeight,qRgb(200,200,0));gradientArc(painter,radius,45,45,arcHeight,qRgb(200,0,200));gradientArc(painter,radius,90,45,arcHeight,qRgb(0,200,200));gradientArc(painter,radius,135,45,arcHeight,qRgb(200,0,0));gradientArc(painter,radius,225,45,arcHeight,qRgb(0,200,0));gradientArc(painter,radius,180,45,arcHeight,qRgb(0,0,200));gradientArc(painter,radius,270,45,arcHeight,qRgb(0,0,0));gradientArc(painter,radius,315,45,arcHeight,qRgb(150,150,150));painter.setPen(QPen(QColor(Qt::yellow),2));painter.rotate(-35);painter.drawText(60,30,tr(谢谢参与));painter.rotate(40);painter.drawText(70,30,tr(一等奖));painter.rotate(95);painter.drawText(70,30,tr(二等奖));painter.rotate(135);painter.drawText(70,30,tr(三等奖));painter.rotate(180);painter.drawText(70,30,tr(幸运奖));painter.rotate(210);painter.drawText(70,30,tr(幸运奖));painter.rotate(245);painter.drawText(70,30,tr(谢谢参与));painter.rotate(40);painter.drawText(70,30,tr(特等奖));QPainter painter2(this);painter2.setRenderHint(QPainter::Antialiasing,true);painter2.translate(width() 1,height() 1);painter2.rotate(m_nRotationAngle);static const QPoint poit[4] {QPoint(0,-18),QPoint(10,0),QPoint(0,60),QPoint(-10,0)};painter2.setBrush(QColor(Qt::red));painter2.setPen(Qt::NoPen);painter2.drawPolygon(poit,4);painter2.setBrush(QColor(Qt::yellow));painter2.drawEllipse(-7,-7,14,14); } 我自己写的代码比较烂各位看官嘴下留情…一直想实现的缓动效果就是当针快要停下的时候缓慢的停下来。说是需要添加额外的库。水平有限以后有机会再慢慢实现。
http://www.hkea.cn/news/14358536/

相关文章:

  • 积分网站建设2023近期舆情热点事件
  • 如何解析后用二级域名做网站浅绿色网站模板
  • 单页面淘宝客网站苏州代理注册公司哪家好
  • 网盘做扩大网站服务器百度网盘网页版入口官网
  • dns可以将网站域名解析企业网站设计经典案例
  • 企业电子商务网站建设策划书做网站怎么在图片里面插字
  • 商务网站规划与设计实训心得客户端
  • 做网站会员推广哪个好安阳百姓网
  • 为什么会有免费制作网站杭州产品设计公司
  • uzi视频网站谁做的驻马店app和网站开发公司
  • 城乡建设厅官方网站如何做网站服务器映射
  • 摄影网站采用照片做宣传 版权费是多少哪些网站可以用gif做头像
  • 网站怎么引蜘蛛上海做网站待遇
  • 苏州网站制作哪家好什么是搜索引擎销售
  • 网站验收技术指标wordpress始终无法登录
  • 影楼网站源码网店美工名词解释
  • 数据库对于做网站的重要性扬中网站哪家做得好
  • wordpress开源程序建站教程电脑培训班有哪些科目
  • 酒类网站建设方案程序编程软件有哪些
  • 网页设计网站费用重庆承越网站建设公司
  • 做旅游网站怎么样忘记wordpress
  • 企业网站备案系统随州网站seo多少钱
  • 做调查赚钱的网站有哪些网站内链分析
  • 专业的家居网站建设江苏金安建设公司网站
  • 手机免费建设网站搜狗优化排名
  • 东莞网站设计定制开发网站弹出信息怎么做
  • 做响应式的网站有哪些凡客软件下载
  • 宁至网站建设wordpress下载主题需要ftp
  • 培训的网站建设东莞外贸推广公司
  • 重庆八大员证书查询网站模板下载后怎么使用