QT猜数游戏+进度条的使用

&1游戏时间设置
在这里插入图片描述
在这里插入图片描述

绿色进度条可以随我时间控制

//获取编辑框的时间,.toInt(),转成int
    gameTime=ui->comboBox->currentText();
    gametime=gameTime.toInt();
    qDebug()<<"gametime="<<gametime;
```获取下拉框的时间

```cpp
void MainWindow::timerEvent(QTimerEvent *e)
{
    if(e->timerId()==gameTimerId)//游戏时间
    {
        gametime--;
        //设置进度条
        ui->progressBar->setValue(gametime);
        if(0==gametime)//时间到
        {
            killTimer(gameTimerId);
            QMessageBox::information(this,"失败","时间到了!");
            //overMovie.start();
        }
    }
}

```cpp
`    int randStr;//随机数
    int gameTimerId;//游戏时间定时器Id
    int overTimer;//失败时间定时器id
    int winTimer; //成功时间定时器id
    QString resultStr;//结果数``
//进度条变化
void MainWindow::timerEvent(QTimerEvent *e)
{
    if(e->timerId()==gameTimerId)//游戏时间
    {
        gametime--;
        //设置进度条
        ui->progressBar->setValue(gametime);
        if(0==gametime)//时间到
        {
            killTimer(gameTimerId);
            QMessageBox::information(this,"失败","时间到了!");
            //overMovie.start();
        }
    }
}
`
进度图形展示



```cpp
``//开始游戏
void MainWindow::on_pushButton_3_clicked()
{
    //获取编辑框的时间,.toInt(),转成int
    gameTime=ui->comboBox->currentText();
    gametime=gameTime.toInt();
    qDebug()<<"gametime="<<gametime;
     ui->stackedWidget->setCurrentWidget(ui->page_4);
    int num;
    //从0开始计时,到现在的秒数作为种子
    qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
    while((num=qrand()%10000)>999);
    QString randstr=QString::number(num);
    int randStr=randstr.toInt();
    qDebug()<<"randStr="<<randStr;
    //设置进度条
    ui->progressBar->setMinimum(0);//最小值
    ui->progressBar->setMaximum(gametime);//最大值
    ui->progressBar->setValue(gametime);//当前值
    gameTimerId=0;
    gameTimerId=startTimer(1000);//1秒作为时间间隔
    resultStr.clear();
    ui->textEdit->clear();

}

```cpp
`//数字处理,判断数字大小
void MainWindow::dealNum()
{
    //获取信号接受者
    QObject *mySender=sender();
    //转化为按钮类型
    QPushButton *p=(QPushButton *)mySender;
    if(NULL!=p)
    {
        //获取按钮内容
        QString numStr=p->text();
        resultStr+=numStr;
        //数字不能以零开始
        if(resultStr.size() == 0 && resultStr=="0")
        {
            resultStr.clear();
        }

        if(resultStr.size()<4)
        {
            ui->lineEdit_2->setText(resultStr);
        }
        if(resultStr.size()==4)//数字到达第四位时
        {
            if(resultStr>randStr)
            {
                ui->lineEdit_2->setText("数字大了点");
            }
            else if(resultStr<randStr)
            {
                ui->lineEdit_2->setText("数字小了点");
            }
            else if(resultStr==randStr)
            {
                ui->lineEdit_2->setText("恭喜答对了!");
            }
        }
    }
}``
```//删除数字

```cpp
void MainWindow::on_pushButton_22_clicked()
{
    if(resultStr.size()==1)
    {
        resultStr.clear();
        ui->textEdit->clear();
    }
    else {
        resultStr.chop(1);//截断最后一位字符
        resultStr[resultStr.size()-1]='\0';
        ui->textEdit->setText(resultStr);
    }
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值