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

时间:2021-05-20

本文实例为大家分享了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; }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章