千家信息网

在Windows系统上怎么用QT5实现一个时钟桌面

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要讲解了"在Windows系统上怎么用QT5实现一个时钟桌面",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"在Windows系统上怎么用QT5
千家信息网最后更新 2024年11月11日在Windows系统上怎么用QT5实现一个时钟桌面

这篇文章主要讲解了"在Windows系统上怎么用QT5实现一个时钟桌面",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"在Windows系统上怎么用QT5实现一个时钟桌面"吧!

介绍

这是一个简单的时钟运行界面,项目的结构如图所示,主要包含一个头文件:** analogclock.h **,两个源文件: ** analogclock.cpp main.cpp **.

实现代码

clock.pro

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# You can make your code fail to compile if it uses deprecated APIs.# In order to do so, uncomment the following line.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \    main.cpp \    analogclock.cppHEADERS += \    analogclock.h# Default rules for deployment.qnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target

analogclock.h

#ifndef ANALOGCLOCK_H#define ANALOGCLOCK_H#include class AnalogClock : public QWidget{    Q_OBJECTpublic:    AnalogClock(QWidget *parent=0);protected:    void paintEvent(QPaintEvent *event) override;};#endif // WIDGET_H

analogclock.cpp

#include #include "analogclock.h"AnalogClock::AnalogClock(QWidget *parent)    : QWidget(parent){    QTimer *timer = new QTimer(this);    //实例一个QTimer的类    connect(timer, SIGNAL(timeout()), this, SLOT(update()));    //监控timeout()信号是否发出    //timeout()表示:This signal is emitted when the timer times out.    //指计时器发出信号,即下面的延时器发出信号    timer->start(1000);//设置1s的延时   /*    *for a function    * void QTimer::start(int msec)    * Starts or restarts the timer with a timeout interval of msec milliseconds.    * If the timer is already running, it will be stopped and restarted.    * If singleShot is true, the timer will be activated only once.    * 单位是毫秒,表示每一秒设置一个信号发出    */    setWindowTitle(tr("Analog Clock"));    //void setWindowTitle(const QString &)    resize(200, 200);    //初始值大小}void AnalogClock::paintEvent(QPaintEvent *) {    /*     *     *   repaint() or update() was invoked,     *   the widget was obscured and has now been uncovered, or     *   many other reasons.     *     *     */    static const QPoint hourHand[3] = {        QPoint(7, 8),        QPoint(-7, 8),        QPoint(0, -40)    };//用于绘制时针的三角形    static const QPoint minuteHand[3] = {        QPoint(7, 8),        QPoint(-7, 8),        QPoint(0, -60)    };//用于绘制分针的三角形    static const QPoint secondHand[3]={        QPoint(7,8),        QPoint(-7,8),        QPoint(0,-90)    };//用于绘制秒针的三角形    QColor hourColor(127, 0, 127);    QColor minuteColor(0, 127, 127, 191);    //QColor::QColor(int r, int g, int b, int a = 255)a表示透明度    QColor secondColor(220,20,60,100);    //为每一个图形绘制颜色及透明度    int side = qMin(width(), height());    //我认为这一句的作用在于找到最小标出,用于坐标系的绘制    QTime time = QTime::currentTime();    qDebug()<

main.cpp

#include "analogclock.h"#include int main(int argc, char *argv[]){    QApplication a(argc, argv);    AnalogClock w;    w.show();    return a.exec();}

编译打包

编译

一般编译过程采用的是debug版本,但是给其他用户使用最好是release版本,因此打包前需要切换到release版本重新编译一遍。

这样在项目文件夹中会有两种版本的exe执行程序。

打包

生成release版本的exe后,进入文件夹中,将release文件夹中的clock.exe复制到单独的文件夹中 ,我复制到myClock文件夹中。

在开始菜单中,选择下图红色的cmd。

进入到myClock文件夹中,输入 windeployqt clock.exe

打包完成后,在myClock文件夹中就可以看到各种.dll链接库文件,这是exe文件依赖的库文件,此时双击clock.exe就可以动态显示时钟了。

将该文件夹打包,就可以部署到其他的Windows系统上。

感谢各位的阅读,以上就是"在Windows系统上怎么用QT5实现一个时钟桌面"的内容了,经过本文的学习后,相信大家对在Windows系统上怎么用QT5实现一个时钟桌面这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0