qt王者荣耀皮肤抽奖器

简介: qt王者荣耀皮肤抽奖器

在这里插入图片描述


用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_OBJECT
    int 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;
}


相关文章
|
6月前
|
Go
Qt实现一个抽奖游戏
Qt实现一个抽奖游戏
|
C++ Python
Python+Qt抽奖点名工具源码窗体程序
Python+Qt抽奖点名工具源码窗体程序
148 0
Python+Qt抽奖点名工具源码窗体程序
|
C++
【C/C++学院】(16)QT版:幸运大抽奖
<p><span style="color:rgb(90,90,90); font-family:'microsoft yahei'; font-size:18px; line-height:29.700000762939453px; white-space:pre-wrap">程序效果:</span></p> <p><span style="color:rgb(90,90,90); f
1173 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
183 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
90 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
3月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
159 2
Qt开发网络嗅探器02
Qt开发网络嗅探器02
|
3月前
|
存储 运维 监控
Qt开发网络嗅探器01
Qt开发网络嗅探器01