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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解C++实现幸运大抽奖(QT版)分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/482752.html

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐