QT day04

一、思维导图

二、登录界面优化

代码:

界面:

*{background-color: rgb(255, 255, 255);
}QFrame#frame{border-image: url(:/Logo/shanChuan.jpg);border-radius:15px;
}#frame_2{background-color: rgba(110, 110, 110, 120);border-radius:15px;
}QLabel#label{background-color: rgba(80, 80, 80, 120);border-radius:30px;
}#label_2{background:transparent;   /* 完全透明*/font: 16pt "等线";color: rgba(255, 255, 255, 120);
}QLineEdit{background:transparent;	  /* 完全透明*/border:none;	/* 设置无边框*/border-bottom:1px solid rgba(255, 255, 255, 120);	/*设置下边框 1像素 实线 背景颜色*/color: rgba(255, 255, 255, 120);font: 14pt "等线";
}QPushButton#pushButton{color: rgba(255, 255, 255, 120);font: 14pt "等线";background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(111, 111, 255, 255), stop:1 rgba(255, 255, 255, 255));border-radius:5px;
}#pushButton_4{color: rgba(255, 255, 255, 120);font: 14pt "等线";background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(111, 111, 255, 255), stop:1 rgba(255, 255, 255, 255));border-radius:5px;
}#pushButton_2{		/* 关闭按钮*/color: rgba(255, 255, 255, 120);background:transparent;   /* 完全透明*/border-radius:10px;
}#pushButton_3{		/*最小化按钮*/color: rgba(255, 255, 255, 120);background:transparent;   /* 完全透明*/border-radius:10px;}QPushButton#pushButton:hover{		/* 鼠标移动  背景颜色有变化*/color: rgba(255, 255, 255, 120);font: 14pt "等线";background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(150, 111, 255, 255), stop:1 rgba(255, 255, 255, 255));border-radius:5px;
}#pushButton_4:hover{		/* 鼠标移动  背景颜色有变化*/color: rgba(255, 255, 255, 120);font: 14pt "等线";background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(150, 111, 255, 255), stop:1 rgba(255, 255, 255, 255));border-radius:5px;
}#pushButton_2:hover{		/* 鼠标移动  背景颜色变红色*/background-color: rgb(65, 65, 65);color: rgba(255, 255, 255, 120);border-radius:15px;
}#pushButton_3:hover{		/* 鼠标移动  背景颜色变红色*/background-color: rgb(65, 65, 65);color: rgba(255, 255, 255, 120);border-radius:15px;
}QPushButton#pushButton:pressed{	/*鼠标按下操作  字体抖动*/color: rgba(255, 255, 255, 120);font: 14pt "等线";background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(111, 111, 255, 255), stop:1 rgba(255, 255, 255, 255));border-radius:5px;padding-top:5px;padding-left:5px;
}#pushButton_4:pressed{	/*鼠标按下操作  字体抖动*/color: rgba(255, 255, 255, 120);font: 14pt "等线";background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(111, 111, 255, 255), stop:1 rgba(255, 255, 255, 255));border-radius:5px;padding-top:5px;padding-left:5px;}#pushButton_2:pressed{border-radius:15px;padding-top:5px;padding-left:5px;}#pushButton_3:pressed{border-radius:15px;padding-top:5px;padding-left:5px;}

头文件:

widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void signal_jump();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_4_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H
second.h
#ifndef SECOND_H
#define SECOND_H#include <QWidget>namespace Ui {
class Second;
}class Second : public QWidget
{Q_OBJECTpublic:explicit Second(QWidget *parent = nullptr);~Second();private:Ui::Second *ui;public slots:void slot_jump();   //定义槽函数
};#endif // SECOND_H

源文件:

widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//去掉界面头部this->setWindowFlag(Qt::FramelessWindowHint);//去掉空白部分this->setAttribute(Qt::WA_TranslucentBackground);}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{//获取username信息QString uname = ui->lineEdit->text();//获取密码信息QString passwd = ui->lineEdit_2->text();//验证账号密码是否正确if(uname == "admin" && passwd == "123456"){int ret = QMessageBox::information(this, "提示", "登录成功", QMessageBox::Ok);if(ret == QMessageBox::Ok){this->close();  //关闭自身界面emit signal_jump(); //触发信号函数 跳转到另一个界面}}else{//弹框提示QMessageBox *mbox1 = new QMessageBox(QMessageBox::Information, "提示", "账号或密码错误,是否重新登录", QMessageBox::Yes | QMessageBox::No);if(mbox1->exec() == QMessageBox::Yes){//按下弹框的Ok按钮,清空密码框中内容ui->lineEdit_2->clear();}else{//按下弹框的No按钮,关闭登录界面this->close();}}
}//关闭按钮的槽函数
void Widget::on_pushButton_2_clicked()
{//关闭当前页面this->close();
}//取消按钮的槽函数
void Widget::on_pushButton_4_clicked()
{//消息对话框int ret = QMessageBox::question(this, "提问", "是否确定退出登录", QMessageBox::Yes | QMessageBox::No);if(ret == QMessageBox::Yes){//点击弹框的ok按钮后,退出登录界面this->close();}
}
second.cpp
#include "second.h"
#include "ui_second.h"Second::Second(QWidget *parent) :QWidget(parent),ui(new Ui::Second)
{ui->setupUi(this);
}Second::~Second()
{delete ui;
}void Second::slot_jump()
{this->show();   //显示自身界面
}
main.cpp
#include "widget.h"#include <QApplication>
#include <second.h>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Second s;//将w的信号函数和s的槽函数连接QObject::connect(&w, &Widget::signal_jump, &s, &Second::slot_jump);return a.exec();
}

运行结果:

三、使用定时器事件 实现闹钟

代码:

界面:

头文件:

widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimerEvent>  //定时器事件类类
#include <QTime>    //时间类
#include <QTextToSpeech>    //文本播报类QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();//重写定时器函数的声明void timerEvent(QTimerEvent *e);private slots:void on_pushButton_clicked();private:Ui::Widget *ui;int sysTimeId;      //系统时间定时器IDint alarTimeId;      //闹钟时间定时器IDQTextToSpeech *speecher;
};
#endif // WIDGET_H

源文件:

widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(this))
{ui->setupUi(this);//界面启动时启动一个定时器sysTimeId = startTimer(1000);   //每隔1s触发一次ui->lineEdit->setPlaceholderText("多少秒后触发");//文本信息居中显示ui->timeLabel->setAlignment(Qt::AlignCenter);ui->sayLab->setAlignment(Qt::AlignCenter);
}//重写定时器函数的实现
void Widget::timerEvent(QTimerEvent *e)
{//判断哪个定时器触发if(e->timerId() == sysTimeId){//获取系统时间QTime sys_time = QTime::currentTime();//将系统时间由QTime-->QStringQString s = sys_time.toString("hh:mm:ss");//在系统时间写入timeLabelui->timeLabel->setText(s);}else{//播报sayLab中的信息  5次int i = 0;for(i=1;i<=5 ;i++){speecher->say(ui->sayLab->text());}if(i == 6){//关闭定时器killTimer(alarTimeId);}}
}Widget::~Widget()
{delete ui;
}//启动按钮槽函数
void Widget::on_pushButton_clicked()
{//获取ui->lineEdit中的信息QString ala_time = ui->lineEdit->text();//将输入的信息专场int型再换算成毫秒,间隔启动定时器alarTimeId = startTimer(ala_time.toInt()*1000);
}
main.cpp
#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

运行结果:

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

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

相关文章

使用芯片为ZYNQ—7020,基于野火FPGA ZYNQ开发板

使用芯片为ZYNQ—7020&#xff0c;基于野火FPGA ZYNQ开发板 肤色模型简介 YCrCb也称为YUV&#xff0c;主要用于优化彩色视频信号的传输。与RGB视频信号传输相比&#xff0c;它最大的优点在于只需占用极少的频宽&#xff08;RGB要求三个独立的视频信号同时传输&#xff09;。其…

国内如何高速下载hugginging face模型

国内如何高速下载hugginging face模型 背景 如今开源大模型很多&#xff0c;相较于线上的调用接口&#xff0c;本地部署更有吸引力。这就免不了需要去Huggingface上下载模型&#xff0c;但因为国内管制要求&#xff0c;huggingface 并不能直接访问&#xff0c;或者下载速度很…

统计学一(术语,正态)

目录 一&#xff0c;常用术语 二&#xff0c;正态分布&#xff08;Normal Distribution&#xff09; 三&#xff0c;中心极限定理(Central Limit Theorem) 一&#xff0c;常用术语 population(族群)&#xff1a;要统计的总的 populationSize(族群数量)&#xff1a;要统计的总…

使用高斯混合模型(GMM)进行猫狗音频聚类(Kaggle Audio Cats and Dogs)

Audio Cats and Dogs | Kaggle 目录 一、实验目标 二、数据分析 三、实验结果 四、改进方向 一、实验目标 数据集包括164个标注为猫的.wav文件&#xff0c;总共1323秒和113个标注为狗叫声的.wav文件&#xff0c;总共598秒&#xff0c;要求判别每个音频是狗叫还是猫叫 二、…

反激开关电源保险丝以及热敏电阻的选型

保险丝&#xff08;2A/250V&#xff09; 保险丝的选型及计算 1、保险丝的作用就是在电路出现故障造成过流甚至短路时能及时切断电路电源的联系。&#xff08; 保护后 级电路&#xff0c;一旦出现故障&#xff0c;由于电流过大温度过高&#xff0c;保险丝熔断 &#xff09; 2、…

6月18日 Qtday4

作业day4.1 作业4.2

SpringBoot快速入门-上

Apache Tomcat Apache Tomcat是一个开源的Servlet 或 web容器&#xff0c;它实现了Java Servlet、JavaServer Pages (JSP)、Java Unified Expression Language (JUEL) 和 Java WebSocket 规范。 使用 官网下载 安装:绿色版 , 直接解压 卸载:直接删除目录 改编码: # conf/l…

多路h265监控录放开发-(1)建立head窗口并实现鼠标拖动整个窗口

头文件&#xff1a; //鼠标事件 用于拖动窗口//一下三个函数都是QWidget的可重载成员函数void mouseMoveEvent(QMouseEvent* ev) override;void mousePressEvent(QMouseEvent* ev) override;void mouseReleaseEvent(QMouseEvent* ev) override; 源文件&#xff1a; / /// 鼠标…

玩了两年黑苹果+两年MBP,macOS究竟好在哪?

注&#xff1a;本文仅为个人观点&#xff0c;仅供参考。 前言 今天比较无聊&#xff0c;小白突然盘点了一下自己使用macOS系统的点点滴滴&#xff0c;这也算是一个闲聊帖子吧。 首先&#xff0c;本帖子无任何广告行为&#xff0c;纯属唠嗑文。 声明一下&#xff0c;以防有小…

如何评价2023年亚太杯数学建模竞赛?

APMCM亚太数学建模大赛的含金量在数学建模比赛中虽然不是最高水平&#xff0c;但是也属于比较高的水平了&#xff0c;值得参加试一试。 比如本次C题&#xff0c; 问题一&#xff1a;研究分析影响中国新能源汽车发展的主要因素&#xff0c;建立数学模型&#xff0c;描述这些因…

[14] CUDA_使用Opencv处理图像

CUDA_使用Opencv处理图像 1. Opencv中的图像表示 Opencv 提供了Mat 类来存储图像&#xff0c;如下&#xff1a; cv::Mat img; imgcv::imread("cameraman.tif);定义图像的示例&#xff1a; //定义单通道图像 cv::Mat img(6,6,CV_8UC1); //32位浮点型 Mat img2(256,256,…

sharePoint-基于sharepoint列表中的其他列值自动更新值列

首先进入网站&#xff0c;点击网站内容 点击想要操作的数据表后面的按钮&#xff0c;点击设置 点击创建栏 填写栏名&#xff0c;类型选择计算值&#xff0c;公式用于对列表或库中的值执行计算&#xff0c;然后点击右下角的确定就添加成功了 公式参考&#xff1a; 公式SharePoi…

Windows系统下制作Windows 11系统U盘启动及安装指导

Windows系统下制作Windows 11系统U盘启动及安装指导 一、准备工作 U盘不得小于8G(推荐使用usb3.0接口)&#xff1b;下载好对应的系统镜像&#xff1b;下载RUFUS或者软通碟U盘制作启动软件&#xff1b; 二、Windows操作系统下制作U盘启动&#xff08;这里以使用RUFUS软件为例&…

Chromium 开发指南2024 Mac篇-安装和配置depot_tools工具(三)

1.引言 在前两篇指南中&#xff0c;我们详细介绍了在 macOS 环境下编译 Chromium 所需的硬件要求和系统依赖&#xff0c;并具体讲解了如何正确安装和配置 Xcode。通过这些步骤&#xff0c;您已经为编译 Chromium 打下了坚实的基础。然而&#xff0c;编译 Chromium 还需要配置一…

电路分析期末总结笔记上

电流&#xff0c;电压定义及单位 电流&#xff08;Current&#xff09; 的定义是单位时间内通过导体横截面的电荷量。 电压&#xff08;Voltage&#xff09;&#xff0c;又称作电势差或电位差&#xff0c;是衡量单位电荷在静电场中由于电势不同而产生的能量差的物理量。 参考…

如何将Postman API测试转换为JMeter以进行扩展

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;-CSDN博客跳槽涨薪的朋友们有福了&#xff0c;今天给大家推荐一个软件测试面试的刷题小程序。​编辑https://…

Apache Royale

Apache Royale 顶级项目 Apache Royale 之前adobe的flex&#xff0c;由于浏览器flash&#xff0c;安全沙箱问题&#xff0c;逐步退出市场&#xff0c;当年flex也就是AS3&#xff0c;浏览器统一兼容问题又停止了。 接着要说明一点&#xff0c;HTML5的自适应是在flex之后&#x…

shell编程中的运算符的讲解

在Linux操作系统中也可以使用expr来进行一些数值的运算&#xff0c;expr接受表达式作为参数&#xff0c;并打印计算结果。 对于某些复杂的表达式或早期不支持内嵌算术表达式的Shell环境&#xff0c;expr 仍然是一个可行的选择。 如上图所示&#xff0c;是使用变量sum来承接加和…

技术点梳理0618

ann建库&#xff0c;分布式建库&#xff0c;性能优化&#xff0c;precision recall参数优化 hnsw&#xff0c;图索引 1. build a&#xff09;确定层&#xff1a;类似跳表思路建立多层&#xff0c;对每一个插入的节点&#xff0c;random层号l&#xff0c;从图的起始点search_…

文献学习——PWM - PFM模式无缝转换的PFC变换器统一控制

PWM - PFM模式无缝转换的PFC变换器统一控制 摘要&#xff1a;断续导通模式通常应用在升压功率因数校正转换器中。这篇文章提出了一种基于虚拟阻抗原理的实现脉冲宽度调制控制和脉冲频率调制控制的统一控制方法。控制模式可以简单的通过只调整一个控制参数来改变。因此&#xf…