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 += \