QT--QMainWindow窗口的状态栏设置
QMainWindow窗口状态栏
- 实时显示时间:
1.获取实时时间使用定时器QTimer,
QTimer *timer = new QTimer(); connect(timer, &QTimer::timeout, this, &时间更新函数);//时间更新函数是自定义的一个槽函数 timer->start(1000);
2.时间更新函数的内容
QDateTime currentTime = QDateTime::currentDateTime(); QString strTime = currentTime.toString("yyyy-MM-dd hh:mm:ss"); m_label->setText(strTime); ui.statusBar->addWidget(m_label);
其中m_label是类内的QLabel指针,在构造函数中初始化,槽函数在头文件中声明。
QT新建Widget项目,一直下一步,完整代码如下:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLabel> #include <QDateTime> #include <QTimer> #include <QString> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void timeUpdate(); private: Ui::MainWindow *ui; QLabel *m_label; }; #endif // MAINWINDOW_H
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_label = new QLabel(); QTimer *timer = new QTimer(); timer->start(1000); connect(timer,&QTimer::timeout,this,&MainWindow::timeUpdate); } MainWindow::~MainWindow() { delete ui; } void MainWindow::timeUpdate() { QDateTime currentTime = QDateTime::currentDateTime(); QString strTime = currentTime.toString("yyyy-mm-dd hh:mm:ss"); m_label->setText(strTime); ui->statusBar->addWidget(m_label); }