QT实现简单的抽奖界面

发布时间:2025-12-09 21:21:52 浏览次数:6

QT实现简单的抽奖界面

自学了一个多月的QT框架,总想写点什么出来,大型的东西知识面还是不够,想起有一次班里搞活动用了一个小小的抽奖软件,当时就觉得,还不错哦,自己能写一个出来就牛逼了呀,所以学了QT之后,自己就花了几十分钟简单的实现一下。其实是很简单的


先上图看看效果

操作说明

用户只需要设置选取范围,点击开始抽奖即可得到抽奖结果,默认范围是0 - 20。

下面看代码:

代码块

代码块语法遵循标准markdown代码,例如:

#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_pushButton_clicked();//头文件中自动生成按钮响应的槽void changSlots();//数字改变的槽private:Ui::Widget *ui;};//下面看cpp代码#include "widget.h"#include "ui_widget.h"#include <QTimer> //加入需要的定时器类Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) //构造函数{ui->setupUi(this);//QT提供的界面设计ui -> lineEdit->setText("20");//设置抽取范围初始值为20ui -> label -> setFont(QFont("Timers", 50, QFont::Bold)); ui ->label -> setText("0");}Widget::~Widget(){delete ui;}void Widget::on_pushButton_clicked()//点击开始抽奖按钮响应的槽{QTimer *timer = new QTimer(this);QTimer *timer2 = new QTimer(this);//声明两个定时器connect(timer, SIGNAL(timeout()), this, SLOT(changSlots())); //80毫秒后定时改变label中的值connect(timer2,SIGNAL(timeout()),timer,SLOT(stop()));//两秒后定时关掉定时器timertimer -> start(80);timer2 -> start(2000);}void Widget::changSlots(){QString num = ui -> lineEdit ->text();int numb = num.toInt(); //获取选取范围并转换成整形int a = qrand() % numb;QString s = QString::number(a,10);//将数字转换成字符串形ui ->label -> setText(s);//设置到label显示出来}//main.cpp中的代码#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){QApplication a(argc, argv);Widget w;w.setWindowTitle("随机抽奖");//设置窗口显示标题w.setMinimumSize(400,300);w.setMaximumSize(400,300);//设置窗口大小不变w.show();return a.exec();}#endif // WIDGET_H... prompt'''

脚注

该程序QT5.5版本编写的,windows7平台下运行,有什么不足的地方请多多指教。
下面附上源代码:
链接:http://pan.baidu.com/s/1co1rbw 密码:ytnj

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477