User Tools

Site Tools

blog:2021-02-12_qt_show_current_time_in_statusbar



2021-02-12 Qt: Show Current Time in statusBar

  • We would like show current time in statusBar.

Method

  • mainwindow.h
    ...
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        // Systen Defined
        MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
        void timerEvent(QTimerEvent *); // Timer事件處理程序
        // -------------------------------------------------
        // User Defined
        void system_initial(); // 應用程式初始化變數
        void tasks_1s(); // 1秒處理之Tasks
    
    private:
        Ui::MainWindow *ui;
        QLabel *currentTimeLabel; // 建立一個顯示時間的Label
        ...
  • initial, 宣告一個顯示時間的Label元件,放置到狀態欄中
    ...
        // 設定 textEdit_log 為 HTML 格式,能接受彩色
        ui->textEdit_Log->setHtml("");
    
        // 宣告 1 秒的Timer
        timer_1s = startTimer(1000);
    
        currentTimeLabel = new QLabel; // 顯示時間的Label元件宣告
        ui->statusbar->addWidget(currentTimeLabel); // 在狀態欄中加入顯示時間的Label元件
        ...
  • 在每秒的Task中,更新現在時間
    void MainWindow::tasks_1s()
    {
        //ui->textEdit_Log->append("timer event.");
        // Update Date & Time
        QDateTime current_time = QDateTime::currentDateTimeUtc(); // 獲得目前UTC時間
        QString timestr = current_time.toString( "yyyy-MM-ddThh:mm:ssZ"); // 設定顯示時間的格式
        currentTimeLabel->setText(timestr); // 更新狀態欄中現在時間
    }
  • 執行結果

TAGS

  • 218 person(s) visited this page until now.

Permalink blog/2021-02-12_qt_show_current_time_in_statusbar.txt · Last modified: 2021/02/12 08:16 by jethro

oeffentlich