当前位置: 首页 > news >正文

坐牢第三十七天(Qt)

作业:

使用qt做一个闹钟

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPixmap>
#include <QBitmap>
#include <QLabel>       //标签类
#include <QLineEdit>    //行编辑器类
#include <QPushButton>  //按钮类
#include <QTextEdit> //多行编辑器类
#include <QTimer>  //定时器类
#include <QTime>   //时间类
#include <QtTextToSpeech> //播报员
#include<QMouseEvent>//鼠标事件类
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
//鼠标事件void mouseMoveEvent(QMouseEvent *event) override;    //鼠标移动事件void mousePressEvent(QMouseEvent *event) override;      //鼠标点击事件
public slots:void My_slot_1();void timeout_slot();
signals:void My_signal_1();
private:Ui::Widget *ui;QLabel *lab_jm;QLabel *lab_time;QLabel *lab_show;QPushButton *btn_1;QLineEdit *edit_time;QPushButton *btn_2;QTextEdit *textedit ;/****************************/QTimer t1;//定时器QTextToSpeech *speecher;//播报员QPoint temp;//中间辅助向量
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);/************************************界面************************************///1.设置界面this->setFixedSize(800,800);//固定大小this->setWindowFlag(Qt::FramelessWindowHint);//设置窗口纯净//2.加载背景图lab_jm =new QLabel(this);lab_jm->move(0,0);lab_jm->resize(800,800);lab_jm->setPixmap(QPixmap(":/icon/xaingrikui.jpg"));lab_jm->setScaledContents(true);lab_jm->setWindowOpacity(0.8);/***********************************标签*************************************///1.1时间的标签lab_time =new QLabel("现在时间",this);lab_time->resize(100,100);lab_time->move(50,70);//创建新字体QFont font1;font1.setFamily("Arial"); // 设置字体为Arialfont1.setPointSize(12);   // 设置字体大小为12号font1.setBold(true);      // 设置字体为粗体// 将新字体应用到行编辑器lab_time->setFont(font1);//2.1展示具体时间的标签lab_show=new QLabel(this);lab_show->resize(400,100);lab_show->move(lab_time->x(),lab_time->y()+lab_time->height());lab_show->setStyleSheet("background-color :rgb(135,206,250));");//创建新字体QFont font;font.setFamily("Arial"); // 设置字体为Arialfont.setPointSize(16);   // 设置字体大小为16号font.setBold(true);      // 设置字体为粗体// 将新字体应用到行编辑器lab_show->setFont(font);/***********************************行编辑器*************************************///写入定时时间行编辑器edit_time =new QLineEdit(this);edit_time->resize(200,90);edit_time->move(lab_show->x()+lab_show->width()+30,lab_show->y());//将字体应用到行编辑器edit_time->setFont(font);/***********************************按钮*************************************///1.启动按钮btn_1 =new QPushButton("启动",this);btn_1->resize(80,40);btn_1->move(edit_time->x()-20,edit_time->y()+edit_time->height()+10);btn_1->setFont(font1);//2.取消按钮btn_2 =new QPushButton("取消",this);btn_2->resize(80,40);btn_2->move(btn_1->x()+edit_time->width()-40,btn_1->y());btn_2->setEnabled(false);btn_2->setFont(font1);/***********************************播报多行编辑器*************************************///用于写入播报内容的多行编辑器textedit =new QTextEdit(this);textedit->resize(750,400);textedit->move(25,350);textedit->setFont(font);/***********************************展示时间*************************************///1.启动按钮绑定connect(btn_1,&QPushButton::clicked,this,&Widget::My_slot_1);//2.由于定时器事件的信号与槽的绑定只需要一次,所以直接写在构造函数中即可connect(&t1, &QTimer::timeout, this, &Widget::timeout_slot);//3.取消按钮connect(btn_2,&QPushButton::clicked,[&]{edit_time->clear();textedit->clear();});//给播报员分配内存空间speecher =new  QTextToSpeech;btn_2->setEnabled(false);
}Widget::~Widget()
{delete ui;
}
//1.启动按钮槽函数
void Widget::My_slot_1()
{if(btn_1->text()=="启动"){//启动一个定时器t1.start(1000);        //每隔指定的时间,发送一个timeout的信号btn_1->setText("开始");btn_2->setEnabled(true);}else{//当在运行脑子时使一些功能和按钮不可用btn_1->setEnabled(false);edit_time->setReadOnly(true);textedit->setReadOnly(true);}
}//2.展示槽函数
void Widget::timeout_slot()
{//获取系统的时间QTime sysTime = QTime::currentTime();//将QTime类对象转变成字符串QString tm = sysTime.toString("hh:mm:ss");//将时间展示到ui界面上lab_show->setText(tm);//lab_show->setAlignment(Qt::AlignCenter);//居中//行编辑器和时间对比if(edit_time->text()== lab_show->text()){//让播报员播报出多行编辑器里的内容speecher->say(textedit->toPlainText());//让那些按钮和编辑器变得可用btn_1->setEnabled(true);edit_time->setReadOnly(false);textedit->setReadOnly(false);}
}//界面和鼠标跟着走函数
void Widget::mouseMoveEvent(QMouseEvent *event)//鼠标移动事件
{this->move(event->globalPos()-temp);
}
void Widget::mousePressEvent(QMouseEvent *event)//鼠标按下事件
{temp=event->globalPos()-this->pos();//求出中间辅助向量if(event->button() ==Qt::RightButton){this->close();}
}

相关文章:

坐牢第三十七天(Qt)

作业&#xff1a; 使用qt做一个闹钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPixmap> #include <QBitmap> #include <QLabel> //标签类 #include <QLineEdit> //行编辑器类 #include <QPushBu…...

Vidu 全球首发「主体参照」新功能,一键同步角色特征;GPT-4o 实时音频项目负责人离职创业丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…...

电子地图的主要功能与应用

电子地图&#xff0c;即数字地图&#xff0c;是利用计算机技术&#xff0c;以数字方式存储和查阅的地图。它不仅继承了传统纸质地图的基本功能&#xff0c;还通过现代科技手段实现了诸多创新应用。以下是电子地图的主要功能与应用&#xff1a; 一、主要功能 快速存取与显示&…...

基于Java+SpringBoot+Vue+MySQL的西安旅游管理系统网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的西安旅游管理系统网站【附源码文档】、…...

简单介绍 NVIDIA推出的图形处理单元(GPU)架构“安培架构“

概念 "安培架构"&#xff08;Ampere Architecture&#xff09;是 NVIDIA 推出的一款图形处理单元&#xff08;GPU&#xff09;架构&#xff0c;它是继图灵架构之后的下一代产品。安培架构最初在2020年发布&#xff0c;以其高性能和高效率而闻名&#xff0c;广泛应用…...

Qiskit:量子计算的Python工具包

Qiskit是由IBM开发的开源量子计算软件开发工具包&#xff0c;它提供了一套完整的工具&#xff0c;用于量子电路的设计、模拟、优化和执行。Qiskit支持量子算法的开发&#xff0c;并且可以与IBM的量子计算机硬件进行交互。 Qiskit的主要特点 量子电路设计&#xff1a;Qiskit允…...

Python——贪吃蛇

以下是一个简单的贪吃蛇游戏的Python代码示例&#xff1a; import pygame import time import random# 初始化 Pygame pygame.init()# 定义颜色 BLACK (0, 0, 0) WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)# 设置屏幕尺寸 screen_width …...

WPF 依赖属性与附加属性(面试长问)

在WPF中&#xff0c;**依赖属性&#xff08;Dependency Property&#xff09;和附加属性&#xff08;Attached Property&#xff09;**是WPF依赖属性系统的重要组成部分。它们虽然都基于依赖属性系统&#xff0c;但用途、定义方式和使用场景有显著差异。以下是两者的详细解释及…...

Python 中的各括号用法

括号的使用 在Python中&#xff0c;括号和中括号有不同的用途&#xff1a; 圆括号 ()&#xff1a; 函数调用&#xff1a;当你调用一个函数时&#xff0c;需要使用圆括号&#xff0c;即使没有参数。print("Hello, World!") # 调用print函数表达式分组&#xff1a;在…...

业务流程建模(BPM)的重要性及其应用

什么是业务流程建模&#xff08;BPM&#xff09;&#xff1f; 业务流程建模&#xff08;BPM&#xff09;是对企业内各项业务流程进行图形化描述的一种方法。它旨在通过可视化的方式帮助企业理解和分析现有的业务流程&#xff0c;从而发现潜在的问题并进行改进。BPM通常采用流程…...

isxdigit函数讲解 <ctype.h>头文件函数

目录 1.头文件 2.isxdigit函数使用 方源一把抓住VS2022&#xff0c;顷刻 炼化&#xff01; 1.头文件 以上函数都需要包括头文件<ctype.h> &#xff0c;其中包括 isxdigit 函数 #include<ctype.h> 2.isxdigit函数使用 isxdigit 函数是判断字符是否为十六进制数…...

Linux中安装NextCloud

切换为 root 账号 Ubutu 系统默认登录的用户为非 root 权限用户&#xff0c;为了能正常安装 nextCloud&#xff0c;需要切换为 root 账号。执行如下命令即可&#xff1a; sudo su 更新及安装基础包 请依次运行如下命令&#xff0c;有遇到询问的Is this ok [y/d/N]的时候直接键…...

【编程基础知识】什么是数据库事务

事务&#xff08;Transaction&#xff09;是数据库管理系统中的一个基本概念&#xff0c;用于确保数据库操作的原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability…...

移植案例与原理 - XTS子系统之应用兼容性测试用例开发

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 startup子系统之syspara_lite系统属性部件 &#xff08;1&#xff09; startup子系统之syspara_lite系统属性部件 &#xff08;2&#xff09; startup子系…...

关于linux里的df命令以及inode、数据块-stat链接数以及关于awk文本处理命令中内置函数sub、gsub、sprintf

一、关于linux里的df命令以及inode、数据块-stat链接数 Linux中df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计&#xff0c;平常这个命令也用得很多&#xff0c;但一般就是使用df -h查看各个分区的空间使用情况&#xff0c;除此外也可以使用df查看当前linux系统…...

如何本地搭建Whisper语音识别模型

要在本地搭建Whisper语音识别模型&#xff0c;您需要以下几个步骤&#xff1a; 步骤一&#xff1a;系统准备 操作系统: 建议使用Ubuntu 20.04或以上版本&#xff0c;确保系统足够稳定和兼容。硬件配置: 最好有一个强大的GPU&#xff0c;因为语音识别涉及大量的计算工作。推荐…...

微信小程序仿微信聊天界面

界面结构: 消息列表: 使用 scroll-view 实现滚动&#xff0c;每条消息使用 view 组件包裹&#xff0c;根据消息类型 (文本、图片、文件) 显示不同内容。输入框区域: 包含输入框 (textarea)、发送按钮 (button) 和上传文件按钮 (view 组件模拟)。头像: 使用 image 组件展示。 …...

文件用电脑生成的在线技巧,能够轻松将多种类型文件转二维码

现在为了能够更加快捷将文件分享给其他人查看&#xff0c;很多人会通过制作二维码的方式来存储文件&#xff0c;这样可以减少文件对内存的占用&#xff0c;而且用户扫码获取内容也更加的方便快捷。二维码能够随时更新内容&#xff0c;可以长期通过一个二维码来提供个不同的内容…...

QT实现TCP/UDP通信

服务器端&#xff1a; 客户端&#xff1a; 服务器&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QTcpSocket> #include <QList> #include <QMessageBox> #include <QDebug&…...

流程自动化变革:看低代码开发如何赋能企业创新转型

在数字化转型的浪潮中&#xff0c;企业面临着前所未有的挑战和机遇。为了保持竞争力&#xff0c;企业必须快速适应市场变化&#xff0c;创新业务模式&#xff0c;并提高运营效率。流程自动化成为企业转型的关键&#xff0c;而低代码开发平台如JNPF&#xff0c;正成为推动这一变…...

可提示 3D 分割研究里程碑!SAM2Point:SAM2加持泛化任意3D场景、任意提示!

郑重声明&#xff1a;本解读已获得论文作者的原创解读授权 文章链接&#xff1a;https://arxiv.org/pdf/2408.16768 在线demo: https://huggingface.co/spaces/ZiyuG/SAM2Point code链接&#xff1a;https://github.com/ZiyuGuo99/SAM2Point 亮点直击 无投影 3D 分割&#xff1…...

Rabbitmq中得RPC调用代码详解

文章目录 1.RPC客户端2.RabbitMQ连接信息实体类3.XML工具类 本文档只是为了留档方便以后工作运维&#xff0c;或者给同事分享文档内容比较简陋命令也不是特别全&#xff0c;不适合小白观看&#xff0c;如有不懂可以私信&#xff0c;上班期间都是在得 直接上代码了 1.RPC客户端 …...

ISAC: Toward Dual-Functional Wireless Networks for 6G and Beyond【论文阅读笔记】

此系列是本人阅读论文过程中的简单笔记&#xff0c;比较随意且具有严重的偏向性&#xff08;偏向自己研究方向和感兴趣的&#xff09;&#xff0c;随缘分享&#xff0c;共同进步~ Integrated Sensing and Communications: Toward Dual-Functional Wireless Networks for 6G and…...

split 分割字符串方法解析,substring 截取字符串方法解析;二者的作用和区别?使用时需要注意什么?附代码和运行图

目录 一. 摘要 二. split 方法 2.1 String[] split(String regix) 2.2 String[] split(String regix&#xff0c;int limit) 2.3.1 当 int < 0时&#xff0c;会按照最大数量切割字符串 2.3.2 当 int 0时&#xff0c;此时就和第一个方法一样了&#xff0c;等于没有传入…...

HTTP 协议的基本格式

HTTP协议("超文本传输协议")&#xff0c;是一个被广泛使用应用层协议&#xff0c;自1991年正式发布HTTP协议以来&#xff0c;HTTP协议就一直在更新&#xff0c;目前已经更新到3.0版本&#xff0c;但是目前主流的依旧是1.1版本&#xff0c;但依旧是一个最主流使用的应…...

STM32-HAL库开发快速入门

注:本文主要记录一下STM32CubeMX软件的使用流程,记录内容以STM32外设&#xff08;中断、I2C、USART、SPI等配置&#xff09;在STM32CubeMX中的设置为主&#xff0c;对驱动代码编写不做记录&#xff0c;所以阅读本文最好有标准库开发经验。除第2节外&#xff0c;使用的都是韦东山…...

vue3-print打印eletable某一行的数据

主页面的表格 <template><el-table :data"list"><el-table-column label"操作" align"center"><template #default"scope"><el-buttonlinktype"primary"click"handleType(scope.row)"…...

【Vue】pnpm创建Vue3+Vite项目

初始化项目 &#xff08;1&#xff09;cmd切换到指定工作目录&#xff0c;运行pnpm create vue命令&#xff0c;输入项目名称后按需安装组件 &#xff08;2&#xff09;使用vs code打开所创建的项目目录&#xff0c;Ctrl~快捷键打开终端&#xff0c;输入pnpm install下载项目…...

springboot配置多数据源

springboot配置多数据源 学习新技术&#xff0c;争做新青年&#xff0c;欢迎围观&#xff0c;河南老乡在上海请&#xff0c;加&#xff0c;微&#xff0c;andyfau2022&#xff0c; ----获取数据源&#xff1a;null&#xff0c;数据源为null时默认使用主数据源的。 1-yml文件…...

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题&#xff1a;墙体两侧特征混淆误匹配&#xff0c;导致建图和定位偏差&#xff0c;表现为过门跳变、外月台走歪等 解决思路&#xff1a;预期的根治方案IGICP需要较长时间完成上线&#xff0c;先使用切分地图的工程化方案&#xff0c;即墙体两侧切…...