【问题标题】:Display actual time in a Qt program在 Qt 程序中显示实际时间
【发布时间】:2025-12-20 21:10:15
【问题描述】:

MainWindow的标题中显示实际时间(Hh:mm:ss)的简单方法是什么? 使用插槽和信号技术。

【问题讨论】:

    标签: qt time signals slot


    【解决方案1】:

    我正在the one provided by Riateche 上构建我的答案。您可以使用提供的timerEvent() 或任何QObject,而不是使用用户定义的QTimer 和连接信号/插槽。它基本上会在引擎盖下做同样的事情,但会节省你大量的打字时间。这看起来像这样:

    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"));
    }
    

    【讨论】:

    • 不错,不知道那个事件
    【解决方案2】:

    创建一个间隔为 1 秒的QTimer(或例如 100 毫秒以获得更高的精度),将其timeout 信号连接到您的插槽。在槽中使用QTime::currentTime()静态函数获取当前时间,使用toString将其转换为字符串并将其分配给GUI元素(例如标签)。

    【讨论】: