qt-C++笔记之带有倒计数显示的按钮,计时期间按钮锁定

qt-C++笔记之带有倒计数显示的按钮,计时期间按钮锁定

code review!

文章目录

1.运行

2.main.cc

代码

cpp 复制代码
#include <QApplication>
#include <QPushButton>
#include <QTimer>
#include <QFont>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建主窗口
    QWidget window;
    window.setWindowTitle("倒计时按钮示例");

    // 创建按钮
    QPushButton button(&window);
    button.setText("开始倒计时");
    button.setGeometry(50, 50, 150, 50);

    // 创建计时器
    QTimer timer;
    timer.setInterval(1000); // 设置计时器间隔为1秒(1000毫秒)

    int countDown = 2; // 倒计时初始值

    // 设置按钮的样式
    button.setStyleSheet("font-size: 20px; font-weight: bold;");

    // 定义按钮点击事件的处理函数
    QObject::connect(&button, &QPushButton::clicked, [&button, &timer, &countDown]() {
        button.setEnabled(false); // 禁用按钮
        timer.start(); // 启动计时器
        button.setText(QString::number(countDown)); // 显示倒计时初始值
    });

    // 定义计时器超时事件的处理函数
    QObject::connect(&timer, &QTimer::timeout, [&button, &timer, &countDown]() {
        countDown--; // 倒计时减1
        if (countDown > 0) {
            button.setText(QString::number(countDown)); // 更新按钮上的倒计时数字
        } else {
            button.setEnabled(true); // 启用按钮
            button.setText("开始倒计时");
            timer.stop(); // 停止计时器
            countDown = 2; // 重置倒计时初始值
        }
    });

    // 运行应用程序
    window.show();
    return app.exec();
}

3.main.pro

代码

bash 复制代码
QT += widgets

TARGET = FileContentReader
TEMPLATE = app

SOURCES += main.cpp

HEADERS +=

FORMS +=

DISTFILES += \
相关推荐
_OP_CHEN9 分钟前
C++进阶:(四)set系列容器的全面指南
开发语言·c++·stl·set·multiset·关联式容器·setoj题
十五年专注C++开发10 分钟前
Qt-VLC: 一个集成VLC的开源跨平台媒体播放库
开发语言·qt·媒体·libvlc·vlc-qt
bnsarocket29 分钟前
Verilog和FPGA的自学笔记8——按键消抖与模块化设计
笔记·fpga开发·verilog·自学·硬件编程
qq_479875431 小时前
Linux time function in C/C++【2】
linux·c语言·c++
TL滕1 小时前
从0开始学算法——第一天(如何高效学习算法)
数据结构·笔记·学习·算法
仰望—星空1 小时前
MiniEngine学习笔记 : CommandAllocatorPool
笔记·学习
一个不知名程序员www2 小时前
算法学习入门---前缀和(C++)
c++·算法
ol木子李lo2 小时前
Doxygen入门指南:从注释到自动文档
c语言·c++·windows·编辑器·visual studio code·visual studio·doxygen
朝新_2 小时前
【SpringBoot】玩转 Spring Boot 日志:级别划分、持久化、格式配置及 Lombok 简化使用
java·spring boot·笔记·后端·spring·javaee
charlie1145141912 小时前
CSS学习笔记3:颜色、字体与文本属性基础
css·笔记·学习·教程·基础