C++实现幸运大抽奖(QT版)
作者:吴英强 发布时间:2021-09-15 21:32:00
标签:C++,QT,抽奖
本文实例为大家分享了C++实现幸运大抽奖的具体代码,供大家参考,具体内容如下
程序效果:
#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


猜你喜欢
- 一、LinkedHashMap的类继承关系二、源码分析1.自己对LinkedHashMap的理解从继承关系上,我们看到LinkedHashM
- 一、@Configuration注解1、基本使用自定义配置类/** * 1、@Configuration 告诉SpringBoot这是一个配
- 通过下面代码在构造函数中调用方法 SetShadow();即可实现无边框窗体的阴影效果了需要添加命名空间 using System.Runt
- 1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;2、Retent
- 在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型。向上转型我们在现实中常常这样说:这个人会唱歌。在这里,我们并不关心
- 做多媒体项目时,经常会最后来个客户签名并保存之类的,签名保存之前的博客Unity3d截图方法合集有介绍过了,今天闲着把断笔写字的也贴出来吧,
- 先介绍去掉标题栏的方法: 第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE
- 将Android项目导出为Library1.修改build.gradle中的Module:app文件最终如下:2. 进入到项目文件夹目录,保
- 本文实例为大家分享了java实现扫雷游戏入门程序的具体代码,供大家参考,具体内容如下分析:1.首先布一个10*10的雷阵,即二维数组map,
- 前言短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。现在市面上的短信服务平台有很多
- 1.标识符①用于给变量、类和方法命名(类名首字母大写,变量和方法名首字母小写并遵循驼峰原则)②标识符的命名规范: ■ 标识符必须
- 在JVM中,每个对象都关联一个监视器,这里的对象包含Object实例和Class实例。监视器是一个同步工具,相当于一个许可证,拿到许可证的线
- •静态构造函数既没有访问修饰符,也没有参数。•如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静
- 一、String与Date(java.util.Date)互转 1.1 String -&g
- 1. 概述平常我们一般是使用JSON与服务器做数据通信,JSON的话,直接用GSON或者其他库去解析很简单。但是,其他有些服务器会返回XML
- 1、背景一般情况下,有些搜索需求是需要根据拼音和中文来搜索的,那么在elasticsearch中是如何来实现基于拼音来搜索的呢?可以通过el
- List、Set、Map判断两个对象相等的标准List:通过equals()方法比较返回true即可。HashSet:先比较两个对象hash
- SqlMapConfig.xml的约束,也就是Mybatis主配置文件的约束<?xml version="1.0"
- 如下所示: static void Main()&nbs
- 今天上班中午吃饱之后、逛博客溜达看到一道题:数组反转 晚上回家洗完澡没事情做,就自己练习一把。public static cla