Отображение фактического времени в программе Qt
Какой простой способ отобразить фактическое время (чч: мм: сс) в MainWindow
название? Использование технологии слотов и сигналов.
2 ответа
Я строю свой ответ на вопрос, предоставленный Riateche. Вместо использования определенного пользователем QTimer
и подключая сигналы / слоты, вы можете использовать предоставленные timerEvent()
любой QObject
, Он будет делать то же самое под капотом, но сэкономит вам много печатать. Это будет выглядеть так:
class MainWindow : public QMainWindow
{
public:
MainWindow();
protected:
void timerEvent(QTimerEvent *event);
};
MainWindow::MainWindow()
{
startTimer(1000); // 1-second timer
}
void MainWindow::timerEvent(QTimerEvent * event)
{
setWindowTitle(QTime::currentTime().toString("hh:mm:ss"));
}
Создать QTimer
с интервалом в 1 секунду (или, например, 100 мс для большей точности), подключите его timeout
сигнал в ваш слот. В слоте получите текущее время, используя QTime::currentTime()
статическая функция, преобразовать ее в строку, используя toString
и назначьте его элементу GUI (например, метке).