返回顶部
首页 > 资讯 > 精选 >在Windows系统上怎么用QT5实现一个时钟桌面
  • 666
分享到

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

2023-06-28 22:06:10 666人浏览 薄情痞子
摘要

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

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

介绍

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

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

实现代码

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 <QWidget>class AnalogClock : public QWidget{    Q_OBJECTpublic:    AnalogClock(QWidget *parent=0);protected:    void paintEvent(QPaintEvent *event) override;};#endif // WIDGET_H

analogclock.cpp

#include <QtWidgets>#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的延时       setWindowTitle(tr("Analog Clock"));    //void setWindowTitle(const QString &)    resize(200, 200);    //初始值大小}void AnalogClock::paintEvent(QPaintEvent *) {        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()<<time<<'\n';//用于检验现在的时间    QPainter painter(this);//Qt强大的画图工具    painter.setRenderHint(QPainter::Antialiasing);// 用于反锯齿    //针对所有的组件,都反锯齿//表示设置渲染提示    painter.translate(width() / 2, height() / 2);//将原点放在中心    painter.scale(side / 200.0, side / 200.0);//Scales the coordinate system by (sx, sy).标尺坐标系    //Qt画板的x和y表示什么,x表示横线吗,y表示纵线吗?对的    //说明横坐标的范围是-100到100    //   纵坐标的范围是-100到100//时针:    painter.setPen(Qt::NoPen);//一般用于描边,Qt::NoPen表示画笔没有边界    painter.setBrush(hourColor);//一般用于填充    //先将原先的painter存储起来,对目前的painter操作,目前的操作不对原本的产生影响,即原本不旋转    painter.save();//首先将原先画笔类似于入栈,对另一个画笔操作    painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));//表示旋转,若缺少painter.save(),会对整个painter类旋转    painter.drawConvexPolyGon(hourHand, 3);//绘制多边形    painter.restore();//与painter.save()配套使用    painter.setPen(hourColor);    for (int i = 0; i < 12; ++i) {        painter.drawLine(88, 0, 96, 0);        painter.rotate(30.0);//画横线,表示时间示数的标尺    }//分针和秒针同时针//分针:    painter.setPen(Qt::NoPen);    painter.setBrush(minuteColor);    painter.save();    painter.rotate(6.0 * (time.minute() + time.second() / 60.0));    painter.drawConvexPolygon(minuteHand, 3);    painter.restore();    painter.setPen(minuteColor);    for (int j = 0; j < 60; ++j) {        if ((j % 5) != 0)            painter.drawLine(92, 0, 96, 0);        painter.rotate(6.0);    }//时针:    painter.setPen(Qt::NoPen);    painter.setBrush(secondColor);    painter.save();    painter.rotate(6*time.second());    painter.drawConvexPolygon(secondHand,3);    painter.restore();}

main.cpp

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

编译打包

编译

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

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

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

打包

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

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

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

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

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

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

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

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

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

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

--结束END--

本文标题: 在Windows系统上怎么用QT5实现一个时钟桌面

本文链接: https://lsjlt.com/news/321101.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在Windows系统上怎么用QT5实现一个时钟桌面
    这篇文章主要讲解了“在Windows系统上怎么用QT5实现一个时钟桌面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Windows系统上怎么用QT5实现一个时钟桌面”吧!介绍这是一个简单的...
    99+
    2023-06-28
  • 基于QT5实现一个时钟桌面
    目录介绍实现代码clock.pro analogclock.h analogclock.cppmain.cpp编译打包编译打包介绍 这是一个简单的时钟运行界面,项...
    99+
    2024-04-02
  • Python实现系统桌面时钟
    用Python + PyQT写的一个系统桌面时钟,刚学习Python,写的比较简陋,但是基本的功能还可以。 功能: ①窗体在应用程序最上层,不用但是打开其他应用后看不到时间 ②左键双击全屏,可以做小屏保使用,再次双击退出全屏。 ③系统托盘...
    99+
    2023-01-31
    时钟 桌面 系统
  • win7桌面怎么设置一个漂亮的时钟?
    win7系统的电脑,看到有的朋友,在系统桌面的右上角有一个时钟,这个时钟是怎么添加的?对于时间观念比较强的朋友,如果能再桌面上设置一口挂钟,既方便个人时间管理,又比较美观,下面小编就为大家介绍win7桌面怎么设置一个漂亮...
    99+
    2023-06-09
    win7桌面 时钟 桌面 win7 时钟
  • 怎样在Windows 7系统中定制一个简单个性化时钟
    不过对于喜欢在系统定制上把玩的高级用户来说,这样的“礼遇”还不够完美,因为这个日期还有很多可“调教”的空间!        进入设置面板   其实Windows 7支持很多...
    99+
    2023-05-25
    时钟 个性化 Windows 7系统
  • 怎么在html5中实现一个时钟功能
    这期内容当中小编将会给大家带来有关怎么在html5中实现一个时钟功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE HTML><html><hea...
    99+
    2023-06-09
  • 怎么在Html5中使用canvas实现一个粒子时钟
    这篇文章将为大家详细讲解有关怎么在Html5中使用canvas实现一个粒子时钟,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先要创建一个html文件并添加一个canvas画布,如下:<...
    99+
    2023-06-09
  • Java中怎么实现一个数字时钟
    这期内容当中小编将会给大家带来有关Java中怎么实现一个数字时钟,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码如下:package me.socketthread;import j...
    99+
    2023-05-31
    java
  • 使用css3怎么实现一个LED 数字时钟
    使用css3怎么实现一个LED 数字时钟?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语言...
    99+
    2023-06-08
  • 怎么在Ubuntu系统上安装Gnome Flashback桌面
    这篇文章主要讲解了“怎么在Ubuntu系统上安装Gnome Flashback桌面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Ubuntu系统上安装Gnome Flashback桌面...
    99+
    2023-06-13
  • html5 中怎么利用canvas实现一个圆形时钟
    这篇文章给大家介绍html5 中怎么利用canvas实现一个圆形时钟,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。<!DOCTYPE html><html>&l...
    99+
    2024-04-02
  • 怎么在Win8系统隐藏桌面上的图标
    这篇文章主要为大家展示了“怎么在Win8系统隐藏桌面上的图标”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么在Win8系统隐藏桌面上的图标”这篇文章吧。隐藏桌面上的图标的操作步骤:需要先找到隐...
    99+
    2023-06-27
  • 怎么用HTML5的canvas实现一个炫酷时钟效果
    小编给大家分享一下怎么用HTML5的canvas实现一个炫酷时钟效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对于H5来说,canvas可以说是它最有特色的一...
    99+
    2023-06-09
  • nodejs中怎么利用websocket实现一个实时聊天系统
    nodejs中怎么利用websocket实现一个实时聊天系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。client.html:<!D...
    99+
    2024-04-02
  • 恢复完系统后怎样在windows桌面上添加操作系统的默认图标
    这期内容当中小编将会给大家带来有关恢复完系统后怎样在windows桌面上添加操作系统的默认图标,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  经常遇到使用光盘恢复完系统后,桌面上显示的默认图标如我的电脑...
    99+
    2023-06-14
  • 怎么在c#中利用Win32Api实现返回Windows桌面功能
    怎么在c#中利用Win32Api实现返回Windows桌面功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现方法Windows回到桌面功能的实现方式有多种,可以模拟快捷...
    99+
    2023-06-15
  • 如何在Python项目中利用tkinter实现一个时钟效果
    这篇文章主要介绍了如何在Python项目中利用tkinter实现一个时钟效果,此处给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:# coding:utf-8from tkinter&n...
    99+
    2023-06-06
  • 用纯Java实现一个即时通讯系统
    这篇文章主要介绍“用纯Java实现一个即时通讯系统”,在日常操作中,相信很多人在用纯Java实现一个即时通讯系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用纯Java实现一个即时通讯系统”的疑惑有所帮助!...
    99+
    2023-06-15
  • 在Windows系统和Linux系统中怎么打造一个好终端
    这篇文章主要介绍“在Windows系统和Linux系统中怎么打造一个好终端”,在日常操作中,相信很多人在在Windows系统和Linux系统中怎么打造一个好终端问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
  • 使用LogAnalyzer怎么实现一个日志系统
    使用LogAnalyzer怎么实现一个日志系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、部署LAMP环境1、安装CentOS操作系统,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作