• QT动态显示当前时间 用较少的代码和改动引出QT编程


    一、新建Qt4 GUI Application,默认选项,一路ok到finish

    工程名:BeiJingTime

    image

    工程结构:

     image

    二、mainwindow.ui设计图形界面

    这里为简单起见,只添加一个label控件,将此控件名改为beiJingLabel

    image

    三、在mainwindow.h中声明槽函数displayTime(),注意声明加slots!!!

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    
    namespace Ui {
        class MainWindow;
    }
    
    class MainWindow : public QMainWindow {
        Q_OBJECT
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    /*槽函数的声明*/
    public slots:
        void displayTime(void);
    
    protected:
        void changeEvent(QEvent *e);
    
    private:
        Ui::MainWindow *ui;
    };
    
    #endif // MAINWINDOW_H
     

    四、mainwindow.cpp中连接信号与槽,并实现槽函数,如下代码

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QDateTime>
    #include <QTimer>
    #include <QLabel>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        setWindowTitle("北京时间by小山");
    
        /* 定时器,每1000ms执行一次槽函数displayTime() */
        QTimer *timer = new QTimer(this);
        connect(timer, SIGNAL(timeout()), this, SLOT(displayTime()));
        timer->start(1000);
    }
    
    /**在beiJingLabel控件上显示当前系统时间 */
    void MainWindow::displayTime()
    {
        QDateTime dt;
        QTime time;
        QDate date;
    
        dt.setTime(time.currentTime());
        dt.setDate(date.currentDate());
    
        QString currentDate = dt.toString("yyyy:MM:dd:hh:mm:ss");
        ui->beiJingLabel->setText(currentDate);
    }
    
    
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::changeEvent(QEvent *e)
    {
        QMainWindow::changeEvent(e);
        switch (e->type()) {
        case QEvent::LanguageChange:
            ui->retranslateUi(this);
            break;
        default:
            break;
        }
    }


     

    至此,已经可以运行程序了,如要解决中文显示问题,要改变main.cpp如下

    #include <QtGui/QApplication>
    #include "mainwindow.h"
    #include <QTextCodec>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
        QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
        QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
    
        MainWindow w;
        w.show();
        return a.exec();
    }


  • 相关阅读:
    C#学习资源汇总
    ASP.NET MVC从视图传参到控制器的几种形式
    ASP.NET MVC之从控制器传递数据到视图方式
    Scrapy at a glance预览
    登录views
    django加密解密api
    django静态模版使用
    django重定向
    Django 2.1.3 文档
    秀图看图 隐私声明
  • 原文地址:https://www.cnblogs.com/helloweworld/p/2793325.html
Copyright © 2020-2023  润新知