C++实现幸运大抽奖(QT版)

作者:吴英强 时间:2021-09-15 21:32:00 

本文实例为大家分享了C++实现幸运大抽奖的具体代码,供大家参考,具体内容如下

程序效果:

C++实现幸运大抽奖(QT版)

C++实现幸运大抽奖(QT版)


#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QTimer>
#include <QStringList>

class Dialog : public QDialog
{
Q_OBJECT

public:
Dialog(QWidget *parent = 0);
~Dialog();
private slots:
void on_clicked();
void on_timer();
private:
QLabel *label1;
QPushButton *btn1;
QTimer *tm;
QStringList strlist;
};

#endif // DIALOG_H

#include "dialog.h"
#include <QVBoxLayout>
#include <QFont>
#include <QFile>
#include <QTextStream>
#include <QMessageBox>

Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
setWindowTitle(tr("幸运大抽奖"));//设置窗口标题
label1 = new QLabel;
label1->setText(tr("开始幸运大抽奖"));
QFont font;
font.setBold(true);//设置字体为粗体
font.setPointSize(80);//设置字号
label1->setFont(font);

btn1 = new QPushButton;
btn1->setText(tr("开始"));

QVBoxLayout *layout1 = new QVBoxLayout(this);
layout1->addWidget(label1, 0, Qt::AlignCenter);//加入label1标签,并且居中显示
layout1->addWidget(btn1);
// layout1->setSizeConstraint(QLayout::SetFixedSize);//设置layout大小和控件尺寸一致,使窗口不能更改大小

QFile file("student.txt");
if (file.open(QFile::ReadOnly))//以只读的方式打开student.txt文件
{
 QTextStream stream(&file);
 while(!stream.atEnd())
 {
  strlist.append(stream.readLine());//将文件内容放到strlist中
 }
 file.close();
}else
{
 //如果打开student.txt文件失败,程序退出
 QMessageBox::critical(this, tr("错误"), file.errorString());
 exit(0);
}
tm = new QTimer(this);
connect(tm, SIGNAL(timeout()), this, SLOT(on_timer()));
connect(btn1, SIGNAL(clicked()), this, SLOT(on_clicked()));
}

Dialog::~Dialog()
{

}

void Dialog::on_clicked()
{
static bool status = true;
if (status)
{
 btn1->setText("停止");//如果isok为true,设置按钮标题为“停止”
 tm->start(50);//启动计时器,没0.05秒执行一次on_timer函数
 status = false;
}else
{
 btn1->setText("开始");//如果isok为false,设置按钮标题为“开始”
 tm->stop();//停止计时器
 status = true;
}
}

void Dialog::on_timer()
{
if (strlist.count() == 0)
{
 return ;//如果strlist中没有内容,函数返回
}

static int i = 0;
label1->setText(strlist[i]);//从0到strlist.count(),循环显示strlist中每一项的内容
i++;
if (i >= strlist.count())
{
 i = 0;
}
}

来源:https://blog.csdn.net/waldmer/article/details/43953117

标签:C++,QT,抽奖
0
投稿

猜你喜欢

  • Springboot Session共享实现原理及代码实例

    2022-12-16 03:29:52
  • android TextView中识别多个url并分别点击跳转方法详解

    2023-06-21 04:42:32
  • SpringMVC使用RESTful接口案例详解

    2022-08-08 23:41:52
  • Java Object定义三个点实现代码

    2023-11-21 06:05:07
  • win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法

    2022-09-18 07:27:57
  • 解决mybatis批量更新出现SQL报错问题

    2023-11-29 04:12:47
  • 详细讲述Java中的对象转型

    2023-09-24 04:09:49
  • java学习之利用TCP实现的简单聊天示例代码

    2021-07-13 00:43:18
  • SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现

    2023-11-28 19:00:26
  • 基于Spring中各个jar包的作用及依赖(详解)

    2023-05-06 04:08:47
  • C# WinForm窗体编程中处理数字的正确操作方法

    2022-11-21 04:57:10
  • c# 生成随机时间的小例子

    2023-10-04 02:44:29
  • Java操作FTP实现上传下载功能

    2021-12-07 18:35:04
  • Java读取、写入文件如何解决乱码问题

    2023-08-26 11:16:00
  • Linux系统下安装和卸载JDK8的方式

    2023-08-01 15:29:45
  • C#正则表达式的6个简单例子

    2022-12-15 04:50:16
  • Android开发之机顶盒上gridview和ScrollView的使用详解

    2021-08-06 11:57:59
  • SpringBoot整合ActiveMQ的详细步骤

    2023-08-25 07:03:44
  • SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题(推荐)

    2021-09-17 07:19:20
  • Unity的IPostprocessBuild实用案例深入解析

    2023-05-29 05:54:49
  • asp之家 软件编程 m.aspxhome.com