Отображение фактического времени в программе 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 (например, метке).

Другие вопросы по тегам