Я новичок в Qt C ++ и из немногих ресурсов, которые я нашел в сети, я не смог извлечь только бит, необходимый для добавления таймера обратного отсчета в форму.Я не пытаюсь добавить какие-либо кнопки или другие функции.Нужно только иметь таймер, начинающийся с 1:00 и затем уменьшающийся до достижения 0:00, после чего мне нужно показать какое-то сообщение, указывающее пользователю, что время истекло.Я подумал, может быть, добавление метки для отображения таймера было бы простым способом сделать это (но теперь уверен, что я прав в этом).
Пока я создал новый проект приложения Qt, добавил меткув мою основную форму и добавил некоторый код таймера в mainwindow.cpp из того, что я получил в http://doc.qt.io/archives/qt-4.8/timers.html:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//Initialize "countdown" label text
ui->countdown->setText("1:00");
//Connect timer to slot so it gets updated
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(updateCountdown()));
//It is started with a value of 1000 milliseconds, indicating that it will time out every second.
timer->start(1000);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::updateCountdown()
{
//do something along the lines of ui->countdown->setText(....);
}
В mainwindow.h я добавил QTimer *timer;
в качестве публичного атрибута, а также void updateCountdown();
какчастный слот.
Но я не совсем уверен, как дальше идти дальше.Я думаю, что следующий шаг - уменьшить таймер каждую секунду и показать это на метке «обратный отсчет» (что будет сделано в слоте updateCountdown ), но я не могу узнать, как это сделать.Я также не уверен, как вызвать сообщение (возможно, на QFrame), когда обратный отсчет времени достигает 0: 00.