Qt实现电子时钟的示例代码

目录
  • 一、项目介绍
  • 二、项目基本配置
  • 三、UI界面设计
  • 四、主程序实现
    • 4.1 添加新文件
    • 4.2 digiclock.h头文件
    • 4.3 digiclock.cpp源文件
    • 4.4 main.cpp源文件
  • 五、效果演示

一、项目介绍

利用Qt实现显示与桌面上并可以随意拖拽至桌面任意位置的电子时钟案例。

二、项目基本配置

新建一个Qt案例,项目名称为“Clock”,基类选择“QDialog”,取消创建UI界面复选框的选中状态。

三、UI界面设计

无UI界面

四、主程序实现

4.1 添加新文件

添加新文件:

选择“C++ Class”选项,单击“Choose”按钮,选择“Base class”文本框中输入基类名“QLCDNumber”(手动添加),在“Class name”文本框中输入类的名称“DigiClock”:

4.2 digiclock.h头文件

代码如下:

#ifndef DIGICLOCK_H
#define DIGICLOCK_H

#include <QLCDNumber>

class DigiClock : public QLCDNumber
{
    Q_OBJECT
public:
    DigiClock(QWidget *parent=0);
    void mousePressEvent(QMouseEvent *);
    void mouseMoveEvent(QMouseEvent *);

public slots:
    void showTime();    //显示当前时间

private:
    QPoint dragPosition;  //保存鼠标点相对电子时钟窗体左上角的偏移量
    bool showColon;       //用于显示时间时是否显示:
};

#endif // DIGICLOCK_H

4.3 digiclock.cpp源文件

首先,DigiClock类继承自QLCDNumber类:

DigiClock::DigiClock(QWidget *parent):QLCDNumber(parent)
{
//设置时钟背景
QPalette p=palette();//定义调色板对象
p.setColor(QPalette::Window,Qt::blue);//设置背景颜色为蓝色
setPalette(p);//启用调色板对象
setWindowFlags(Qt::FramelessWindowHint);//生成无边界窗口
setWindowOpacity(0.5);//设置窗体透明度为0.5
QTimer *timer=new QTimer(this);//新建定时器对象
connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));//连接定时器地timeout()信号与显示时间的槽信号showTime()
timer->start(1000);//启动定时器(每隔1000ms启动一次)
showTime();//初始时间显示
resize(150,60);//设置电子时钟显示的尺寸
showColon=true;//初始化

}

然后定义槽函数showTime(),完成电子钟的显示时间功能:

//槽函数showTime()
void DigiClock::showTime()
{
    QTime time=QTime::currentTime();    //获取当前系统时间
    QString text=time.toString("hh:mm");//获取的当前时间转换为字符串类型
    if(showColon)                        //控制:闪烁
    {
        text[2]=':';
        showColon=false;
    }
    else
    {
        text[2]=' ';
        showColon=true;
    }
    display(text);    //显示转换好的字符串时间
}

接着,定义鼠标按下事件响应函数:

//鼠标按下事件响应函数
void DigiClock::mousePressEvent(QMouseEvent *event)
{
    if(event->button()==Qt::LeftButton) //判断按下键是否为鼠标左键
    {
        //dragPosition=event->globalPos()-frameGeometry().topLeft();
        dragPosition=event->pos();//两种方法
        //event->accept();//接收事件
    }
    if(event->button()==Qt::RightButton)    //若按下键为鼠标右键
    {
        close();//退出
    }
}

定义鼠标移动事件响应函数,实现拖拽功能:

//鼠标移动响应函数
void DigiClock::mouseMoveEvent(QMouseEvent *event)
{
    if(event->buttons()&Qt::LeftButton)
    {
        move(event->globalPos()-dragPosition);
        //event->accept();//接收事件
    }
}

4.4 main.cpp源文件

代码如下:

#include "dialog.h"
#include <QApplication>
#include"digiclock.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    DigiClock clock;
    clock.show();
//    Dialog w;
//    w.show();
    return a.exec();
}

五、效果演示

到此这篇关于Qt实现电子时钟的示例代码的文章就介绍到这了,更多相关Qt电子时钟内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++ Qt绘制时钟界面

    首先来看一下效果: 大概就是这样子,需要注意的是,这里你需要创建一个基类为Widget的界面来绘制时钟,以至于后期你想把这个时钟放到任意一个界面,你只需要在那个界面的ui里面添加一个widget,然后将它提升为这个时钟界面,并设定它的大小. widget.h文件 #ifndef WIDGET_H #define WIDGET_H #include<math.h> #include<QResizeEvent> #include<QGroupBox> #include<

  • Qt实现简单动态时钟

    本文实例为大家分享了Qt实现简单动态时钟的具体代码,供大家参考,具体内容如下 任务实现: 通过Qt语言使用计时器实现一个简单的动态时钟: 实现效果: 实现过程: 整体过程主要分为两个部分: 1.绘制一个表盘所需的元素:时分秒针,刻度,还可以插入钟面背景图片: 2.让所绘制的指针动起来(使用计时器并关联系统时间): 整体代码: dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QDialog> QT_BEGIN_NAMESPACE name

  • QT实现动态时钟

    本文实例为大家分享了QT实现动态时钟的具体代码,供大家参考,具体内容如下 首次学习QT,这次用QT实现了动态图的制作,并成功制作了一个简易的时钟,效果如图: 加快100倍效果 所用背景图,如下(素材来源于百度图片): 代码,原理如下: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; }

  • 基于QT5实现一个时钟桌面

    目录 介绍 实现代码 clock.pro analogclock.h analogclock.cpp main.cpp 编译打包 编译 打包 介绍 这是一个简单的时钟运行界面,项目的结构如图所示,主要包含一个头文件:** analogclock.h **,两个源文件: ** analogclock.cpp main.cpp **. 看完本教程,你就可以知悉在Windows系统上如何实现一个界面程序并部署在Windows系统上. 实现代码 clock.pro QT += core gui grea

  • Qt实现指针式时钟 Qt实现动态时钟

    本文实例为大家分享了Qt实现指针式时钟.动态时钟的具体代码,供大家参考,具体内容如下 先上图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代码注释中给出,很详细~ 概要: 我设计两个窗口,一个主窗口一个子窗口,利用按钮+信号与槽机制,实现两个窗口的互相切换,其中主窗口用来显示指针时钟,完成三个基本要求: 1.正确显示系统时钟: 2.能准确定位时钟刻度和时分秒针的位置

  • QTimer与QTime实现电子时钟

    本文实例为大家分享了QTimer与QTime实现电子时钟的具体代码,供大家参考,具体内容如下 使用QLCDNumber控件进行显示 QLCDNumber控件默认只显示5个字符,可以使用setDigitCount(int size)进行设置显示个数 使用Display(QString str) 设置显示内容 该函数拥有多个重载,字符 整型 浮点型都可以作为参数 效果图: 代码:头文件 #include <QLCDNumber> class NumClock : public QLCDNumber

  • Qt实现电子时钟的示例代码

    目录 一.项目介绍 二.项目基本配置 三.UI界面设计 四.主程序实现 4.1 添加新文件 4.2 digiclock.h头文件 4.3 digiclock.cpp源文件 4.4 main.cpp源文件 五.效果演示 一.项目介绍 利用Qt实现显示与桌面上并可以随意拖拽至桌面任意位置的电子时钟案例. 二.项目基本配置 新建一个Qt案例,项目名称为“Clock”,基类选择“QDialog”,取消创建UI界面复选框的选中状态. 三.UI界面设计 无UI界面 四.主程序实现 4.1 添加新文件 添加新

  • Qt实现电子时钟

    本文实例为大家分享了Qt实现电子时钟的具体代码,供大家参考,具体内容如下 进一步认识Qt中的属性,我们现在再做一个小练习,去实现一个简易版电子时钟的效果. 效果展示: 新建项目: 我们创建了lcdclock2类,其实是没有用到的,实际上是添加新一个C++文件来实现电子钟. 添加C++文件: 代码: clock.h #ifndef CLOCK_H #define CLOCK_H   #include <QDialog>   class clock : public QDialog {     Q

  • Qt创建SQlite数据库的示例代码

    Qt 创建 SQlite数据库 void Widget::initDB() { // 创建并打开数据库 QSqlDatabase database; database = QSqlDatabase::addDatabase("QSQLITE"); // qDebug() << QApplication::applicationDirPath(); // 获取应用程序当前目录 database.setDatabaseName("test.sqlite3")

  • C/C++ QT实现自定义对话框的示例代码

    对话框分为多种,常见的有通用对话框,自定义对话框,模态对话框,非模态对话框等,其中通用对话框包括了,QFileDialog文件对话框,QColorDialog颜色对话框,QFontDialog字体对话框,QInputDialog输入对话框等,自定义对话框则主要是实现自己布局的简单页面,区别于窗体对话框则显得更加简单一些,除对话框外,多窗体设计也是最常用的,例如多窗体嵌入,MID窗体等,下面则是每种窗体的代码总结. 创建自定义窗体 1.首先使用两个控件,TableView主要是表格处理,TreeV

  • Python绘制时钟的示例代码

    目录 导入需要的包设置变量 写数字 绘制时针 完整代码 导入需要的包设置变量 from datetime import datetime from pygame.locals import * import sys, math, pygame def print_text(font, x, y, text, color=(255, 255, 255)): img_text = font.render(text, True, color) screen.blit(img_text, (x, y))

  • Qt实现对齐线功能的示例代码

    目录 现有功能 运行结果 源码 button.h button.cpp window.h window.cpp main.cpp 现有功能 1.添加任意数量的按钮. 2.移动按钮,通过对齐线来设置按钮位置. 3.自动吸附. 运行结果 源码 button.h #ifndef BUTTON_H #define BUTTON_H #include <QPushButton> #include <QWidget> #include <QMouseEvent> class But

  • Qt实现简易计时器的示例代码

    目录 一.项目介绍 二.项目基本配置 三.UI界面设计 四.主程序实现 4.1 mainwindow.h头文件 4.2 mainwindow.cpp源文件 五.效果演示 一.项目介绍 计时器实现四个功能:开始计时.停止计时.暂停计时以及打点.当点击暂停时,开始按钮和停止按钮无法点击,此时暂停按钮变为继续.当点击停止时,开始按钮和暂停按钮无法点击,此时停止按钮变为清零. 二.项目基本配置 新建一个Mainwindow界面.基本配置与其他Qt项目类似,这里不过多介绍. 三.UI界面设计 UI界面如下

  • OpenCV+Qt实现图像处理操作工具的示例代码

    目录 一.目标 二.使用Qt界面 三.图像处理操作完整代码 一.目标 Qt界面实现 雪花屏 高斯模糊 中值滤波 毛玻璃 灰度化 XY方向模糊 双边模糊 腐蚀 [图像处理操作] 要求左边原图,右边效果图 结果展示如下:[图像处理实现有点多,就不一个一个地展示了,各别展示如下] 雪花屏 毛玻璃 灰度化处理 二.使用Qt界面 使用到Qt中的UI设计界面 设计好界面之后最好先保存 对每一个按钮设计槽函数 三.图像处理操作完整代码 难点在于:Qt是QImage而OpenCV是Mat,需要Mat转QImag

  • Qt实现UDP通信的示例代码

    目录 服务器端-单线程 客户端 测试结果-单线程 服务器端-多线程 测试结果-多线程 设想有如下场景:若干的客户端与服务器端建立连接,建立连接后,服务器端随机发送字符串给客户端,客户端打印输出.该节案例使用TCP编程. 服务器端-单线程 头文件 #pragma once // //tcp服务端-单线程处理客户端连接 #include <QAbstractSocket> #include <QObject> class QTcpServer; class SimpleTcpSocke

  • Matlab绘制有趣的罗盘时钟的示例代码

    目录 绘制效果 完整代码 一期趣味编程哈,如何使用MATLAB绘制罗盘时钟: 绘制效果 完整代码 function compassClock % @author : slandarer CCList='零一二三四五六七八九十'; WDList='一二三四五六日'; TBList='子丑寅卯辰巳午未申酉戌亥'; timeNow=datetime('now'); dayNumber=weekday(timeNow); dayNumber=mod(dayNumber-2,7)+1; timeMat=[

随机推荐