• 大小: 257KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: 其他
  • 标签: Qt  抽奖程序  

资源简介

用QtCreator写的一个抽奖程序。功能包括选择人员名单,选择获奖等级。

资源截图

代码片段和文件信息

#include “dialog.h“
#include “ui_dialog.h“
#include 
#include 
#include 


Dialog::Dialog(QWidget *parent) :
    QDialog(parent)
    ui(new Ui::Dialog)
{

    //ui->namelab->setText(“renyuan“);

    isstart = false;

    ui->setupUi(this);
}

void Dialog::changename()
{
    QFileDialog *fileDialog = new QFileDialog(this);
            fileDialog->setWindowtitle(tr(“Open Image“));
            fileDialog->setDirectory(“.“);
            //fileDialog->setFilter(tr(“Image Files(*.jpg *.png)“));
            if(fileDialog->exec() == QDialog::Accepted)
            {
                path = fileDialog->selectedFiles()[0];
                readname(path);
                QMessageBox::information(NULL tr(“Path“) tr(“You selected “) + path);
            }
            else
            {
                QMessageBox::information(NULL tr(“Path“) tr(“You didn‘t select any files.“));
            }

}

void Dialog::readname(QString namepath)
{
    //读取人员名单
    QFile file(namepath);

    if(file.open(QFile::ReadOnly))
    {
        QTextStream stream(&file);
        while(!stream.atEnd())
        {
            namelist.append(stream.readLine());

        }
        file.close();

    }
    else
    {
        QMessageBox::critical(this tr(“error“) file.errorString());

    }

}

void Dialog::start()
{
//    //将读取到的人员名单滚动显示在lab中
//    for(int i=0; i//    {
//        ui->namelab->setText(namelist[i]);
//        //更改标签内容后一定要更新
//        update();
//        if(i >= namelist.count())
//        {
//            i = 0;
//        }
//    }

    if(isstart == true)
    {
        return;
    }



    if(!namelist.count())
    {
        return;
    }

    m_timer = new QTimer(this);
    connect(m_timer  SIGNAL(timeout())  this  SLOT(on_timer()));
    m_timer->start(100);

    isstart = true;


}

void Dialog::prizenumchange()
{
    isstart = false;
}

void Dialog::stop()
{

    //int size = namelist.count();
    //int winner = (qrand()%size);
    //ui->onelab->setText(namelist[winner]);

    m_timer->stop();
    //connect(m_timerSIGNAL(timeout())thisSLOT(stop()));

    winname = ui->namelab->text();

    //判断中奖类型
    winnum = ui->prizenum->currentIndex();

    switch (winnum)
    {
        case 0://一等奖
        {
            ui->onelab->setText(winname);
            update();
            break;
        }
        case 1://二等奖
        {
            ui->twolab->setText(winname);
            break;
        }
        case 2://三等奖
        {
            ui->thrlab->setText(winname);
            break;
        }

    }


}

void Dialog::on_timer()
{
    if(namelist.count() == 0)
    {
        return;
    }
    static int i = 0;
    ui->namelab->setText(namelist[i]);
    update();
    i++;
    if(i >= namelist.count())
    {
        i = 0;
    }


}

Dialog::~Dialog()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-24 11:50  CCchoujiang\
     文件      129526  2019-01-22 23:54  CCchoujiang\0.png
     文件      129526  2019-01-22 19:51  CCchoujiang\1.jpg
     文件        1077  2019-01-22 23:35  CCchoujiang\CCchoujiang.pro
     文件      124447  2019-01-24 11:50  CCchoujiang\CCchoujiang.pro.user
     文件        3120  2019-01-23 13:08  CCchoujiang\dialog.cpp
     文件         729  2019-01-23 13:07  CCchoujiang\dialog.h
     文件        9006  2019-01-23 13:11  CCchoujiang\dialog.ui
     文件         226  2019-01-23 02:37  CCchoujiang\image.qrc
     文件         376  2019-01-23 01:00  CCchoujiang\main.cpp
     文件          25  2019-02-14 14:16  CCchoujiang\name.txt

评论

共有 条评论