【C/C++学院】(16)QT版:幸运大抽奖

简介: <p><span style="color:rgb(90,90,90); font-family:'microsoft yahei'; font-size:18px; line-height:29.700000762939453px; white-space:pre-wrap">程序效果:</span></p> <p><span style="color:rgb(90,90,90); f

程序效果:



#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;
    }
}


目录
相关文章
|
6月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
209 1
WK
|
2月前
|
开发框架 开发工具 C++
C++跨平台框架Qt
Qt是一个功能强大的C++跨平台应用程序开发框架,支持Windows、macOS、Linux、Android和iOS等操作系统。它提供了250多个C++类,涵盖GUI设计、数据库操作、网络编程等功能。Qt的核心特点是跨平台性、丰富的类库、信号与槽机制,以及良好的文档和社区支持。Qt Creator是其官方IDE,提供了一整套开发工具,方便创建、编译、调试和运行应用程序。Qt适用于桌面、嵌入式和移动应用开发。
WK
79 5
|
5月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
120 1
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
5月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
229 2
|
5月前
|
存储 算法 C++
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
141 4
|
5月前
|
安全 C++
C++ QT 单例模式
C++ QT 单例模式
93 0
|
6月前
|
数据可视化 开发者 C++
Qt(C++)使用QChart静态显示3个设备的温度变化曲线
QChart模块是Qt Charts库的基础,提供了用于创建和显示各种类型图表的类和接口。Qt Charts库是一个功能丰富、易于使用的数据可视化工具库,可以帮助开发者在应用程序中添加漂亮而又交互性强的图表。
88 1
Qt(C++)使用QChart静态显示3个设备的温度变化曲线
|
5月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
5月前
|
存储 C++
【C++】C++ QT实现 学生信息管理系统(QT源码)【独一无二】
【C++】C++ QT实现 学生信息管理系统(QT源码)【独一无二】
190 0
|
6月前
|
存储 JSON 数据可视化
Qt(C++)使用QChart动态显示3个设备的温度变化曲线
Qt的QChart是一个用于绘制图表和可视化数据的类。提供了一个灵活的、可扩展的、跨平台的图表绘制解决方案,可以用于各种应用程序,如数据分析、科学计算、金融交易等。
314 1