C++实现幸运大抽奖(QT版)
#include "dialog.h"
#include
#include
#include
#include
#include
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;
}
}
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播