qt王者荣耀皮肤抽奖器

发布时间:2025-12-09 18:51:06 浏览次数:4


用qt做了一个王者荣耀皮肤抽奖器,效果如下图。


说一下过程吧,第一步,就是先准备好皮肤的图片,皮肤的图片在王者荣耀的官网是可以下载的,但是过百的下载量确实有点大了,动了个小心思,网上找了一个用py写的爬虫,用来爬了官网的图片。下载地址


将下载好的图片进行分类,这真是在考验我的耐心,对于一个完全对皮肤没认识的来说太艰难了,还好有我三位王者室友的帮助!,很快的对皮肤进行了分类,有288的,有488的,等等。



然后就是qt代码啦,其实代码并不多。

没加载背景的样子,好丑(这不是重点)。


思路就是mainwindow.h头文件下面放的都是皮肤对应的名字。将他们放在字符串数组中,对字符串下标进行随机抽取,然后通过加载字符串加载对应的图片(图片放在资源下面)。

#ifndef MAINWINDOW_H#define MAINWINDOW_H#pragma execution_character_set("utf-8")#include <QMainWindow>#include<QTimer>#include<QTime>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{Q_OBJECTint GameRand(int num); //生成随机数int n;QString str288[80]={"百里守约-绝影神枪","嫦娥-露花倒影","百里玄策-威尼斯狂欢","狄仁杰-锦衣卫","成吉思汗-维京掠夺者","扁鹊-救世之瞳","伽罗-花见巫女","貂蝉-异域舞娘","程咬金-爱与正义","蔡文姬-蔷薇王座","关羽-天启骑士","干将莫邪-第七人偶","东皇太一-东海龙王","大乔-伊势巫女","黄忠-芝加哥教父","鬼谷子-阿摩司公爵","高渐离-金属狂潮","盾山-极冰防御线","狂铁-命运角斗场","姜子牙-时尚教父","后羿-精灵王","公孙离-花间舞","李信-灼热之刃","兰陵王-隐刃","镜-冰刃幻境","花木兰-剑舞者","鲁班大师-归虚梦演","李元芳-特种部队","老夫子-潮流仙人","铠-龙域领主","马超-幸存者","鲁班七号-福禄兄弟","刘邦-圣殿之光","李白-范海辛","梦奇-美梦成真","马可波罗-激情绿茵","鲁班七号-木偶奇遇记","刘禅-英喵野望","哪吒-三太子","米莱狄-精准探案法","蒙恬-秩序猎龙将","露娜-绯红之刃","裴擒虎-街头旋风","牛魔-西部大镖客","芈月-红桃皇后","蒙犽-归虚梦演","苏烈-爱与和平","上官婉儿-修竹墨客","女娲-尼罗河女神","明世隐-占星师","太乙真人-圆桌骑士","孙膑-未来旅行","沈梦溪-棒球奇才","盘古-创世神祝","项羽-帝国元帅","王昭君-精灵公主","孙策-海之征途","司马懿-魇语军师","杨玉环-霓裳曲","小乔-万圣前夜","西施-归虚梦演","孙悟空-西部大镖客","虞姬-加勒比小姐","瑶-森","雅典娜-战争女神","夏侯惇-战争骑士","钟馗-地府判官","元歌-午夜歌剧院","曜-归虚梦演","杨戬-埃及法老","猪八戒-年年有余","钟无艳-生化警戒","云中君-荷鲁斯之眼","弈星-踏雪寻梅","庄周-鲤鱼之梦","周瑜-海军大将","张良-一千零一夜","诸葛亮-星航指挥官"};QString str488[20]={"安琪拉-玩偶对对碰","白起-白色死神","曹操-超能战警","大乔-守护之力","宫本武藏-万象初新","关羽-龙腾万里","后羿-阿尔法小队","李白-敏锐之力","刘备-万事如意","露娜-哥特玫瑰","苏烈-坚韧之力","孙尚香-沉稳之力","张飞-五福同心","甄姬-花好人间","诸葛亮-掌控之力"};QString str588[4]={"宫本武藏-未来纪元","花木兰-兔女郎","刘备-汉昭烈帝","赵云-白执事"};QString str888[53]={"阿轲-爱心护理","阿轲-节奏热浪","安琪拉心灵 骇客","白起-星夜王子","百里守约-特工魅影","不知火舞-魅语","蔡文姬-舞动绿茵","曹操-幽灵船长","程咬金-功夫厨神","程咬金-星际陆战队","达摩-大发明家","妲己-女仆咖啡","大乔-白蛇","大乔-猫狗日记","典韦-黄金武土","貂蝉-圣诞恋歌","伽罗-箭羽风息","公孙离-无限星赏官","宫本武藏-鬼剑武藏","韩信-白龙吟","韩信-街头霸王","花木兰-水晶猎龙者","橘右京-修罗","铠-曙光守护者","兰陵王-暗隐猎兽者","李白-千年之狐","李元芳-逐浪之夏","廉颇-地狱岩魂","刘邦-德古拉伯爵","刘禅-绅士熊喵","刘禅-天才门将","露娜-紫霞仙子","吕布-未日机甲","吕布-圣诞任欢","墨子-金属风暴","娜可露露-晚萤","孙膑-天使之翼","孙策-猫狗日记","孙尚香-时之恋人","孙尚香-水果甜心","武则天-东方不败","夏侯惇-乘风破浪","小乔-缤纷独角兽","小乔-青蛇","亚瑟-心灵战警","瑶-遇见神鹿","赢政-暗夜贵公子","赢政-摇滚巨星","张飞-乱世虎臣","赵云-忍●炎影","赵云-未来纪元","甄姬-冰雪圆舞曲","诸葛亮-黄金分割率"};QString strcs[20]={"达摩-黄金狮子座","狄仁杰-超时空战土","貂蝉-猫影幻舞","貂蝉-仲夏夜之梦","干将莫邪-久胜战神","宫本武藏-地狱之眼","后羿-黄金射手座","花木兰-冠军飞将","刘备-时之恋人","梦奇-胖达荣荣","孙尚香-末日机甲","孙悟空-地狱火","武则天-海洋之心","虞姬-云霓雀翎"};public:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;};#endif // MAINWINDOW_H

mianwindow.cpp 要说的可能就是概率,我本来是想100里面随机到0-20算20%,后来发现这样根本不准,我要是商家我就亏大了,我把100换成了较大的数,这个概率数据才能算是正确的。

#include "mainwindow.h"#include "ui_mainwindow.h"#include<QTime>#include<qdebug.h>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);}MainWindow::~MainWindow(){delete ui;}void MainWindow::on_pushButton_clicked(){int number_1=0;int number_2=0;int number_y = GameRand(77);for(int j =0;j<500000000;j++){}ui->label_2->setText("恭喜你");for(int i =0; i<1000;i++){number_1 = GameRand(1000);//number_1 = str.toInt();//288 70%if(number_1>=200){number_2 = GameRand(77);//显示图片 显示文字ui->label_4->setText(str288[number_2]);ui->label_3->setText("获得288皮肤:");QString str_1 = str288[number_2];QString str_2 = "border-image: url(:/lib/img288/"+str_1+".jpg)";qDebug()<<str_2;ui->label->setStyleSheet(str_2);break;}//488 20%if(number_1>=90 && number_1<200){number_2 = GameRand(13);ui->label_4->setText(str488[number_2]);ui->label_3->setText("获得488皮肤:");QString str_1 = str488[number_2];QString str_2 = "border-image: url(:/lib/img488/"+str_1+".jpg)";ui->label->setStyleSheet(str_2);qDebug()<<str_2;break;}//588 6%if(number_1>=30&&number_1<90){number_2 = GameRand(3);ui->label_4->setText(str588[number_2]);ui->label_3->setText("获得588皮肤:");QString str_1 = str588[number_2];QString str_2 = "border-image: url(:/lib/img588/"+str_1+".jpg)";ui->label->setStyleSheet(str_2);qDebug()<<str_2;break;}//888 3%if(number_1>=5&&number_1<30){number_2 = GameRand(52);ui->label_4->setText(str888[number_2]);ui->label_3->setText("获得888皮肤:");QString str_1 = str888[number_2];QString str_2 = "border-image: url(:/lib/img888/"+str_1+".jpg)";ui->label->setStyleSheet(str_2);qDebug()<<str_2;break;}//传说 1%if(number_1>=0&&number_1<5){number_2 = GameRand(13);ui->label_4->setText(strcs[number_2]);ui->label_3->setText("获得传说皮肤:");QString str_1 = strcs[number_2];QString str_2 = "border-image: url(:/lib/imgcs/"+str_1+".jpg)";ui->label->setStyleSheet(str_2);qDebug()<<str_2;break;}}}int MainWindow::GameRand(int num) //生成随机数{QTime time;time = QTime::currentTime();qsrand(time.msec()+time.second()*1000);return qrand()%num+0;}
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477