QT---day4事件

1、思维导图

2、 

头文件

#ifndef MYWIDGET_H
#define MYWIDGET_H
 
#include <QWidget>
#include<QIcon> //图标类
#include<QLabel> //标签类
#include<QMovie> //动图类
#include<QLineEdit> //行编辑器类
#include<QPushButton> //按钮类
#include <QDebug>
#include <QMessageBox>
#include<QTimer>        //定时器类
#include<QTime>            //时间类
#include<QTimerEvent>      //定时器事件处理类
#include<QDateTime>        //日期时间类
 
QT_BEGIN_NAMESPACE
namespace Ui { class MyWidget; }
QT_END_NAMESPACE
 
class MyWidget : public QWidget
{
    Q_OBJECT
 
public:
    MyWidget(QWidget *parent = nullptr);
    ~MyWidget();
public:
    QPushButton *btn1;
    QPushButton *btn2;
     QLineEdit *edit1;
     QLineEdit *edit2;
      QLabel *lab2;
       QLabel *lab1;
 
private slots:
     void timeout_slot();    //自定义处理超时信号的槽函数
     void on_eventBtn_clicked();
     void timerEvent(QTimerEvent *eent) override;       //重写定时器事件处理函数
 
private:
    Ui::MyWidget *ui;
    QTimer timer;
    int tid =0;
};
#endif // MYWIDGET_H
 

源文件

#include "mywidget.h"
#include "ui_mywidget.h"
 
MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    //==============窗口相关设置=======
    this->resize(300,200);
    //this->setFixedSize(300,200);
    //窗口标题
    this->setWindowTitle("闹钟");
    //窗口图标
   // this->setWindowIcon(QIcon(":/pictrue/qq.png"));
    //背景颜色
    this->setStyleSheet("background-color:white");
    //去掉头部
    this->setWindowFlag(Qt::FramelessWindowHint);
 
 
    //============标签相关设置=======
    //QLabel *lab1 = new QLabel(this);
    //设置大小
    this->lab1->resize(100,40);
    this->lab1->move(20,10);
    this->lab1->setStyleSheet("background-color:blue");
    //lab1->setStyleSheet("background-color:pink");
    //动图类 接收动图
    //QMovie *mv = new QMovie(":/pictrue/zz.gif");
    //将动图放入标签中
    //lab1->setMovie(mv);
    //让动图动起来
    //mv->start();
    //自动适应
    //lab1->setScaledContents(true);
 
   // QLabel *lab2 = new QLabel(this);
    this->lab2->resize(280,100);
    this->lab2->move(10,80);
    this->lab2->setPixmap(QPixmap(":/picture/nz.png"));
    this->lab2->setScaledContents(true);
    this->lab2->setStyleSheet("background-color:blue");
 
 
    //============行编辑器相关设置=======
    this->edit1 = new QLineEdit(this);
    edit1->resize(100,30);
    edit1->move(180,10);
   // edit1->setPlaceholderText("QQ号/手机号/邮箱");
 
    //============按钮相关设置=======
    this->btn1 = new QPushButton("启动",this);
    btn1->resize(40,20);
    btn1->move(180,50);
    //样式函数setStyleSheet()
    btn1->setStyleSheet("background-color:rgb(8,189,253);border-radius:5px;color:white");
 
 
    //============按钮相关设置=======
    this->btn2 = new QPushButton("关闭",this);
    btn2->resize(40,20);
    btn2->move(230,50);
    //样式函数setStyleSheet()
    btn2->setStyleSheet("background-color:rgb(8,189,253);border-radius:5px;color:white");
 
     // connect(edit2,&QLineEdit::textChanged,this,&MyWidget::signal);
      connect(btn1,&QPushButton::setDown,this,&MyWidget::on_eventBtn_clicked);
      connect(btn2,&QPushButton::setDown,this,&MyWidget::on_eventBtn_clicked);
 
 
}
 
MyWidget::~MyWidget()
{
    delete ui;
}
 
//超时信号对应的槽函数的定义
void MyWidget::timeout_slot()
{
//    static int num = 0;
//    ui->objLab->setNum(num++);
    //使用时间类实例化对象
    QTime sysTime = QTime::currentTime();        //获取系统当前的时间,并返回一个时间类对象
 
 
    //将QTime转换为QString
    QString time = sysTime.toString("hh : mm : ss");
 
 
    //将字符串展示到ui界面
    this->edit1->setText(time);
}
 
void MyWidget::on_eventBtn_clicked()
{
    //判断按钮上的文本内容
    if(this->btn1->text() == "开始")
    {
        //启动一个定时器
        tid = this->startTimer(1000);    //启动定时器,并返回该定时器的id
        //该定时器启动后,会每隔1000毫秒,自动调用timerEvent函数
 
        //将按钮上的文件改成"关闭"
        this->btn2->setText("关闭");
    }else
    {
        //关闭定时器
        this->killTimer(tid);
 
        //将按钮上的文本设置成"开始"
        this->btn2->setText("开始");
    }
}
 
 
//定时器事件处理函数
void MyWidget::timerEvent(QTimerEvent *eent)
{
    //判断是哪个定时器到位
    if(eent->timerId() == tid)
    {
        //将系统的日期时间展示出来
        //调用系统的日期时间
        QDateTime sysDateTime = QDateTime::currentDateTime();
 
 
        //将日期时间转换为字符串
        QString dateTime = sysDateTime.toString("yyyy - MM - dd hh:mm:ss");
 
 
        //展示到ui界面中
        this->lab1->setText(dateTime);
    }
}
 

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

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

相关文章

阿里云开发uniapp之uni-starter

一、为什么使用uni-starter uni-starter是集成商用项目常见功能的、云端一体应用快速开发项目模版。 一个应用有很多通用的功能&#xff0c;比如登录注册、个人中心、设置、权限管理、拦截器、banner... uni-starter将这些功能都已经集成好&#xff0c;另外&#xff0c;uni-s…

Baidu Comate智能编码助手

Baidu Comate智能编码助手 &#x1f388;1.Baidu Comate的简介&#x1f388;2.安装Baidu Comate&#x1f388;3.Baidu Comate实现功能&#x1f388;4.使用注释进行智能代码提示&#x1f388;5.结束语 &#x1f388;1.Baidu Comate的简介 根据官网的介绍&#xff0c;我们了解到B…

力扣每日一题113:路径总和||

题目 中等 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSu…

完成单位投稿任务找投稿渠道不用精选10个1个就够了

在单位担任信息宣传员的这几年,我深刻体会到了“笔耕不辍”的艰辛与挑战。起初,面对单位的宣传需求,我遵循传统的投稿路径,即通过电子邮件的方式,一家接一家地向各大媒体投递稿件。那时的我,以为只要稿件质量上乘,自然能够获得青睐,却未曾料到,这是一条漫长而曲折的道路。 邮箱…

算法day03

第一题 179. 查找总价格为目标值的两个商品 本题采用前后指针和单调性规律可解&#xff1b; 解题思路如下&#xff1a; 1、设置前后指针 2、前后指针所指的两数之和大于目标数&#xff0c;右指针左移&#xff1b; 前后指针所指的两数之和小于目标数&#xff0c;左指针右移&…

“视频剪辑新境界:批量高效处理,画面虚化与播放速度调整一气呵成!“

在视频制作的广阔天地中&#xff0c;剪辑是赋予作品生命的关键环节。然而&#xff0c;面对大量的视频素材&#xff0c;如何高效地进行剪辑、调整&#xff0c;使每一帧画面都充满魅力&#xff0c;成为许多创作者面临的挑战。今天&#xff0c;我们为您带来一款颠覆性的视频剪辑工…

学习笔记:【QC】Android Q - IMS 模块

一、IMS init 流程图 高清的流程图参考&#xff1a;【高清图&#xff0c;保存后可以放大看】 二、IMS turnon 流程图 高清的流程图参考&#xff1a;【高清图&#xff0c;保存后可以放大看】 三、分析说明 1、nv702870 不创建ims apn pdp 2、nv702811 nv702811的时候才创建…

Objective-C的对象复制与拷贝选项

对象复制与拷贝 文章目录 对象复制与拷贝copy与mutablecopycopy与mutablecopy的简介示例&#xff1a;不可变对象的复制可变对象的复制 NSCopying和NSMutableCopying协议深复刻和浅复刻浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a;深拷贝&#xff08;Deep Copy&…

同步电机原理解析

同步电机 同步带年纪&#xff0c;顾名思义无论负载如何&#xff0c;都能以恒定的速度运转&#xff0c;它以高效率著称 这种恒速特性是通过恒定磁场和旋转磁场的相互作用实现的&#xff0c;与其他电机一样&#xff0c;同步电机由定子和转子组成&#xff0c;定子铁芯由硅片层叠而…

无人直播需要什么软件系统?最新AI实景自动无人直播软件:智能化引领直播拓客新时代

随着互联网的快速发展&#xff08;无人直播招商加盟&#xff1a;hzzxar&#xff09;直播行业已经成为商家品牌推广和商品销售的热门方式。近年来&#xff0c;人工智能技术的飞速发展&#xff0c;催生了一款令人惊叹的AI实景自动无人直播软件&#xff0c;为商家提供了全新的直播…

修改表空间的状态

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 表空间有4种状态:联机、脱机、只读和读写。修改其中某一种状态的语句如下所示 设置表空间 tspace 为联机状态。 SQL>ALTER TABLESPACE space ONLINE: 设置表空间 tspa…

google地图js,添加标记,以及infowindow信息弹窗

&#xff08;谷歌地图版本V3&#xff09; var contentString "<div classdevinfo><P>设备ID: BJ-20240507</p> <P>设备状态: 正常</p> <P>通讯信号: 89% </p> <P>设备位置: 中国</p> <P>剂量率: 988</p&…

鸿蒙开发接口Ability框架:【(StaticSubscriberExtensionAbility)】

StaticSubscriberExtensionAbility StaticSubscriberExtensionAbility模块提供静态订阅者扩展能力的类别的能力。 说明&#xff1a; 本模块首批接口从API version 9 开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下…

SpringBoot之Zuul服务

概述 Spring Cloud Netflix zuul组件是微服务架构中的网关组件,Zuul作为统一网关,是所有访问该平台的请求入口,核心功能是路由和过滤。 目前公司业务就是基于Zuul搭建的网关服务,且提供的服务包括转发请求(路由)、黑名单IP访问拦截、URL资源访问时的权限拦截、统一访问日志记…

【python】模拟巴特沃斯滤波器

巴特沃斯滤波器&#xff08;Butterworth Filter&#xff09;&#xff0c;以其设计者斯蒂芬巴特沃斯&#xff08;Stephen Butterworth&#xff09;的名字命名&#xff0c;是一种具有平滑频率响应的滤波器。这种滤波器在频域中具有非常平坦的无波纹响应&#xff0c;直到它达到截止…

【springboot基础】如何搭建一个web项目?

正在学习springboot&#xff0c;还是小白&#xff0c;今天分享一下如何搭建一个简单的springboot的web项目&#xff0c;只要写一个类就能实现最基础的前后端交互&#xff0c;实现web版helloworld &#xff0c;哈哈&#xff0c;虽然十分简陋&#xff0c;但也希望对你理解web运作…

ssm115乐购游戏商城系统+vue

毕业生学历证明系统 设计与实现 内容摘要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统毕业生学历信息管理难…

iOS 17 / iPad OS 17屏蔽更新

iOS 17 / iPad OS 17屏蔽更新 1&#xff0c;进入屏蔽iOS更新的描述文件下载链接 下载链接 wx 搜索 Geek 前端发送屏蔽更新进行获取 2&#xff0c;复制这段链接&#xff0c;在Safari浏览器中打开&#xff0c;注意打开后别点击下载&#xff01;要先改时间&#xff01; 3&#…

感知机简介

感知机简介 导语感知机简单逻辑电路实现权重和配置与/或/与非与门实现与非门实现或门实现 线/非线性单/多层感知机异或 总结参考文献 导语 学习感知机有助于更好的理解深度学习的神经元、权重等概念&#xff0c;感知机的结构和概念很简单&#xff0c;只要学过基本线性代数、数…

华为静态路由跨网段通信eNSP

拓扑图&#xff1a; 底层原理&#xff1a; 通信需要4个地址 源MAC 源IP 目标MAC 目标IP ARP地址解析协议 通过ip地址解析MAC 如果是相同的网段直接通过 arp直接发送广播 谁是192.168.1.2 我需要的MAC 1.2就会回应告诉 1.1他的MAC 1.1会封装4个地址 发送方的IP MAC 接受方IP和MA…