QT之液晶电子时钟

        根据qt的<QLDNumber>做了一个qt液晶电子时钟.

        结果

                  实时显示当前时间,左键可以拖动时钟在屏幕的位置,右键点击关闭显示.

        

        实现过程

        新建一个class文件,让这个文件的父类是QLCDNumber

        

        相关功能变量定义和函数实现

        .c文件代码

        这里需要注意的一点是event->button是获取的最后一次点击,而event->buttons是检测是否按下,故计算相对位置是使用button,拖动时需要使用buttons

#include "digitalclock.h"
#include<QDebug>
DigitalClock::DigitalClock(QWidget * parent) :QLCDNumber(parent)
{//设置蓝色背景QPalette p = palette();//获取当前的调色板p.setColor(QPalette::Window,Qt::blue);//对窗体设置颜色 蓝色setPalette(p);//无边框窗体风格setWindowFlags(Qt::FramelessWindowHint);//设置窗体的透明度setWindowOpacity(0.5);//定时器QTimer  * timer =  new QTimer(this);//信号槽 定时器时间到 启动 showtimeconnect(timer,&QTimer::timeout,this,&DigitalClock::showTime);timer->start(1000);//间隔1000ms(1s)showTime();//重置窗口大小resize(150,60);//冒号显示 flag = truem_showColon = true;
}
//button 是检测最后一次点击
void DigitalClock::mousePressEvent(QMouseEvent *event)
{if(event->button() == Qt::LeftButton)//鼠标左键{{m_dragPosition = event->globalPos()//鼠标相对于屏幕左上角偏移的位置- frameGeometry().topLeft();//时钟窗体左上角位置qDebug()<<m_dragPosition;//接受event->accept();}if(event->button() == Qt::RightButton){close();}}
/*
buttons()方法返回的是一个整数,其中每一位代表一个按钮的状态。这样的设计允许同时检查多个按钮的状态。例如,你可以检查是否同时按下了左键和右键。
而button()方法通常用于获取最后一个点击的按钮。
所以在这里,为了检查鼠标左键是否被按下,我们使用buttons()方法,并通过位与运算符&来检查特定的位。
*/void DigitalClock::mouseMoveEvent(QMouseEvent *event)
{if(event->buttons() == Qt::LeftButton){move(event->globalPos() - m_dragPosition);event->accept();}}void DigitalClock::showTime()
{//显示时间QTime  time = QTime ::currentTime();QString strTime = time.toString("hh:mm");if(m_showColon){strTime[2] = ':';}else{strTime[2] = ' ';}display(strTime);m_showColon = !m_showColon;
}

           希望对大家有所帮助.   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/501068.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【cpp】深蓝学院 c++课程 基于课后作业的学习复习汇总 其1 1-6节

写在前面 N年前上来深蓝学院cpp的课&#xff0c;老师是大牛但却有讲的特别细致&#xff0c;感觉对于入门的我有很大帮助。当时作为初学者有很多不理解的地方&#xff0c;现在工作了几年回头去看理解深刻了一些&#xff0c;将会在学习行业算法的时候&#xff0c;复习一下课程内…

【详识JAVA语言】猜数字游戏

游戏规则: 系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" . 参考代码 import java.…

当你的游览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么

当你的游览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么 1.负责域名解析的 DNS 服务 DNS&#xff08;Domain Name System&#xff09;服务是和 HTTP 协议一样位于应用层的 协议。它提供域名到 IP 地址之间的解析服务。 计算机既可以被赋予 IP 地址&#xf…

Ubuntu系统使用Docker搭建Jupyter Notebook并实现无公网ip远程连接

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

【前端素材】推荐优质后台管理系统DAdmin平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面&#xff0c;通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面&#xff0c;使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

Python:关于数据服务中的Web API的设计

搭建类似joinquant、tushare类似的私有数据服务应用&#xff0c;有以下一些点需要注意&#xff1a; 需要说明的是&#xff0c;这里讨论的是web api前后端&#xff0c;当然还有其它方案&#xff0c;thrift&#xff0c;grpc等。因为要考虑到一鱼两吃&#xff0c;本文只探讨web ap…

利用Quartz实现复杂的任务调度

第一章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;任务调度&#xff0c;简而言之&#xff0c;就是按照预定计划自动执行任务的过程。不管是数据库备份、报表生成还是发送定时邮件&#xff0c;它们都需要一个可靠的任务调度系统来保证按时完成。 那么&#xff0…

用node或者vscode开启一个简单的本地server服务器,加载html网页

使用Live Server 想要加载本地html页面可以快速能让它在你本地浏览器中打开&#xff0c;可以有好多种方式&#xff0c;如果你有使用vscode&#xff0c;可以安装一个插件&#xff1a;Live Server&#xff0c;然后直接在vscode中直接右键就可以开启这个服务&#xff1a; 安装好之…

几个原创文章自动生成软件推荐

在数字化时代&#xff0c;原创文章的重要性越来越被重视&#xff0c;但是频繁的写作工作却也耗费大量时间和精力。原创文章自动生成软件能够帮助大家快速生成各种类型的原创文章&#xff0c;节省时间和精力。本文将介绍6款不同的原创文章自动生成软件&#xff0c;并介绍一款知名…

02|JVM内存模型

1. JVM整体结构及内存模型 1.1 类装载子系统 负责加载字节码文件并将其转换为可以执行的Java类。类加载器子系统包括三个主要的类加载器&#xff1a;Bootstrap ClassLoader&#xff08;引导类加载器&#xff09;、Extension ClassLoader&#xff08;扩展类加载器&#xff09;和…

linux nasm汇编中调用printf不报错,但调用scanf报错。抛出了分段错误(核心转储)

当我写了如下汇编时 ; nasm -f elf64 -g -F dwarf charsin.asm ; gcc charsin.o -no-pie -o charsin ; ld -o eatclib eatclib.o ; gdb eatclib[SECTION .data]SPrompt db Enter string data, followed by Enter: ,0IPrompt db Enter an integer value, followed by Enter: ,1…

人工智能应用工程师职业技能提升如何考取,需要具备怎样的技能?

人工智能应用工程师是能够利用人工智能相关技术进行应用研发&#xff0c;并开展各类工作的从业人员统称。 人工智能应用工程师考试是对人工智能领域从业者的全面认证&#xff0c;共分为初级、中级、高级三个等级&#xff0c;分别对应了人工智能应用工程师未来发展的三个大致方向…