Qt实现名字的幸运大抽奖

发布时间:2025-12-09 21:55:45 浏览次数:3

话不多说,上图:


/*----------------Luck.h--------------------*/#ifndef DIALOG_H#define DIALOG_H#include <QDialog>#include <QLabel>#include <QPushButton>#include <QTimer>#include <QGridLayout>#include <QByteArray>class Dialog : public QDialog{Q_OBJECTpublic:Dialog(QWidget *parent = 0);~Dialog();private slots:void add();void on_time();private:QPushButton * btn1;QLabel * label1;QTimer * timer;};#endif // DIALOG_H/*----------------Luck.h--------------------*/ /*----------------Luck.cpp--------------------*/#include "dialog.h"Dialog::Dialog(QWidget *parent): QDialog(parent){setWindowTitle(tr("Qt幸运大抽奖"));timer = new QTimer(this);btn1 = new QPushButton;label1 = new QLabel;QFont font1("Microsoft YaHei", 30,25);QFont font2("Fantasy",20);label1->setFont(font1);label1->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);label1->setText(tr("点击↓开始"));btn1->setFont(font2);btn1->setText(tr("幸运大抽奖"));QGridLayout *layout = new QGridLayout(this);layout->addWidget(label1, 0 ,1);layout->addWidget(btn1, 1, 1);connect(btn1,SIGNAL(clicked()),this,SLOT(add()));connect(timer,SIGNAL(timeout()),this,SLOT(on_time()));}Dialog::~Dialog(){}void Dialog::add(){if(timer->isActive()){setWindowTitle(tr("Qt本轮幸运得主:"));timer->stop();btn1->setText(tr("幸运大抽奖"));}else{setWindowTitle(tr("Qt抽奖中..."));timer->start(30);btn1->setText(tr("暂停"));}}void Dialog::on_time(){FILE * file;static int a = 0;file = fopen("C:\\Users\\Administrator\\Desktop\\xixi.txt","r");char buf[10];memset(buf, 0, sizeof(buf));s1:int i = 0;a++;while(fgets(buf, sizeof(buf),file)){if( ++i == a){QString s1 = QString::fromLocal8Bit(buf);label1->setText((s1));break;}}if(feof(file)){a = 0;rewind(file);goto s1;}fclose(file);}/*----------------Luck.cpp--------------------*/ /*----------------main.cpp--------------------*/#include "dialog.h"#include <QApplication>#include <QMessageBox>#include <windows.h>int main(int argc, char *argv[]){QApplication a(argc, argv);Dialog w;w.show();return a.exec();}/*----------------main.cpp--------------------*/
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477