嵌入式-QT学习-小练习
1. 实现多窗口
2. 给按键增加图标
3. 动图展示
结果演示:
Mul_Con
main.cpp
#include "widget.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }
一、第一个窗口展示
ui界面布局:未运行前
运行后的界面展示
二、第二个窗口界面
ui界面设计
运行界面
第一个窗口实现代码
widget.cpp文件
#include "widget.h" #include "ui_widget.h" #include <QIcon> #include <QDebug> #include <QPixmap> #include <QMovie>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("KOKO");//构造第二个窗口w2 = new Dialog;//直接将窗口的show方法(本来就是一个槽函数),绑定到信号connect(w2, &Dialog::backWindow, this, &Widget::show);this->setFixedSize(this->size());//固定当前窗口大小//给button设置一个图标QIcon icon("/home/ubuntu/Pictures/avocado.jpg");//路径ui->pushButton->setIcon(icon);ui->pushButton->setIconSize(ui->pushButton->size() / 2);//设置快捷键ui->pushButton->setShortcut(QKeySequence(""));//控件ui->label->setText("hello");//设置lable显示图片QPixmap *map = new QPixmap("/home/ubuntu/Pictures/avocado.jpg");//图片大小qDebug()<<"图片大小=" << map->size();ui->label->setPixmap(*map);//设置图片缩放适应labelui->label->setScaledContents(true);//label适应图片// ui->label->resize(map->size());//ui->label->move(0,0);//this->resize(ui->label->size());//设置label在其他控件后面ui->label->lower();//放置在最后面的层ui->pushButton->raise();//放置在最前面的层//label显示一个数ui->label_2->setNum(125.125);//label显示动图GIFQMovie *movie = new QMovie("/home/ubuntu/Pictures/koko.gif");ui->label->setMovie(movie);//播放设置movie->start();//开始播放movie->setSpeed(100);//播放速度qDebug() << "move size=" << movie->scaledSize();//视频/图片适应labelui->label->setScaledContents(true); }Widget::~Widget() {delete ui; }void Widget::ShowThisWind() {this->show(); }void Widget::on_pushButton_clicked() {qDebug("点击");//按钮按下状态if(ui->pushButton->isChecked() == true){qDebug("按下");}else {qDebug("弹起");}//显示第二个窗口w2->show();//模态方式显示//w2->exec();//非模态显示this->hide(); }
widget.h文件
#ifndef WIDGET_H #define WIDGET_H #include "dialog.h" #include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pushButton_clicked();public slots:void ShowThisWind();private:Ui::Widget *ui;Dialog *w2; }; #endif // WIDGET_H
第二个窗口代码实现
dialog.cpp
#include "dialog.h" #include "ui_dialog.h" #include <QMovie> #include <QDebug> Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog) {ui->setupUi(this);this->setWindowTitle("罗小黑");this->setFixedSize(this->size());//固定窗口大小//设置label在其他控件后面ui->label->lower();//放置在最后面的层ui->pushButton->raise();//放置在最前面的层//label显示动图GIFQMovie *movie = new QMovie("/home/ubuntu/Pictures/lxh.gif");ui->label->setMovie(movie);//播放设置movie->start();//开始播放movie->setSpeed(100);//播放速度qDebug() << "move size=" << movie->scaledSize();//视频/图片适应labelui->label->setScaledContents(true);}Dialog::~Dialog() {delete ui; }void Dialog::on_pushButton_clicked() {//关闭this->close();//关闭窗口 }void Dialog::on_pushButton_2_clicked() {this->hide();//返回上一个窗口emit backWindow(); }
dialog.h文件
#ifndef DIALOG_H #define DIALOG_H#include <QDialog>namespace Ui { class Dialog; }class Dialog : public QDialog {Q_OBJECTpublic:explicit Dialog(QWidget *parent = nullptr);~Dialog();signals:void backWindow();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::Dialog *ui; };#endif // DIALOG_H
相关文章:

嵌入式-QT学习-小练习
1. 实现多窗口 2. 给按键增加图标 3. 动图展示 结果演示: Mul_Con main.cpp #include "widget.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }一、第一个窗口展示 …...
使用 Flask-Limiter 和 Nginx 实现接口访问次数限制
在现代 Web 应用中,针对敏感接口(如短信验证码、登录接口等)的访问次数限制至关重要。通过设置合理的限流策略,可以有效防止接口滥用,避免过多的资源消耗,并提升安全性。本文将通过 Nginx 和 Flask-Limiter…...

【数据结构】排序算法---冒泡排序
文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaCGo 结语 1. 定义 冒泡排序(英语:Bubble sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的…...
mysql数据库中事务锁的机制
读锁又称为共享锁,简称S锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。 写锁又称为排他锁,简称X锁,排他锁就是不能与其他所并存,如一个事务获取了一个…...
并发工具类-CountDownLatch
CountDownLatch 是 Java 中提供的一种非常有用的并发工具类,位于 java.util.concurrent 包中。它可以使一个或多个线程等待其他线程完成一组特定的操作后再继续执行。CountDownLatch 通过维护一个计数器来实现这一点,计数器的初始值由构造函数设定。每当…...

进程的重要函数
进程的重要函数: fork函数 了解fork函数 通过调用fork()函数,则会产生一个新的进程。调用fork()函数的进程叫做 父进程,产生的新进程则为子进程。 其编码过程: 1.函数功能: 函数头文件 #include <sys/types.h> #include <unistd.h> 函数…...
python 实现average median平均中位数算法
average median平均中位数算法介绍 平均(Mean)和中位数(Median)是统计学中常用的两个概念,用于描述一组数据的中心趋势,但它们并不是算法,而是数据处理的结果。不过,我可以解释如何…...
HTML概述
1. HTML概述 1.1 HTML定义 HTML超文本标记语言,其中超文本是链接,标记也叫标签(即带尖括号的文本)。 1.2 HTML基本骨架 HTML基本骨架是网页模板。 <html><head><title>网页的标题</title></head&…...

【FFT】信号处理——快速傅里叶变换【通俗易懂】
快速傅里叶变换(Fast Fourier Transform, FFT)是一种用于将信号从时间域转换到频率域的算法。 傅里叶变换的核心思想是:任何周期性信号都可以分解成多个不同频率的正弦波或余弦波的叠加。 简单来说,FFT可以帮助我们理解一个信号…...
电脑升级WIN11之后需要注意哪些东西
1.记事本,在前单位时,电脑升级后,记事本会需要手动更新,或手动安装 2.任务栏,WIN11默认任务栏在中间位置,想要调成WIN10一样的位置,分享两个方法 拖拽法(适用于Windows 11 2022年1…...
GEE 教程:利用sentinel-5p数据进行长时序CO一氧化碳的监测分析并结合夜间灯光数据分析
目录 简介 数据 哨兵5号 NOAA/VIIRS/DNB/MONTHLY_V1/VCMCF 函数 ui.Chart.image.series(imageCollection, region, reducer, scale, xProperty) Arguments: Returns: ui.Chart 代码 结果 简介 利用sentinel-5p数据进行长时序CO一氧化碳的监测分析并结合夜间灯光数据…...

【教程】鸿蒙ARKTS 打造数据驾驶舱---前序
鸿蒙ARKTS 打造数据驾驶舱 前面2章我介绍了如何通过定义View绘制箭头以及圆形进度,初步了解了鸿蒙如何进行自定义View。接下来我将通过我最近在带的一个VUE的项目,简单实现了几个鸿蒙原生页面。帮助大家快速上手纯血鸿蒙开发. 本项目基于Api11Stage模…...

Html css样式总结
1.Html css样式总结 CSS 定义 中文名称:层叠样式表 。 英文全称:Cascading Style Sheets ,简称CSS。在网页制作时采用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。 (1)…...
决策树基础概论
1. 概述 在机器学习领域,决策树(Decision Tree) 是一种高度直观且广泛应用的算法。它通过一系列简单的是/否问题,将复杂的决策过程分解为一棵树状结构,使得分类或回归问题的解决过程直观明了。决策树的最大特点在于可…...

Spring Boot集成Akka Cluster快速入门Demo
1.什么是Akka Cluster? Akka Cluster将多个JVM连接整合在一起,实现消息地址的透明化和统一化使用管理,集成一体化的消息驱动系统。最终目的是将一个大型程序分割成若干子程序,部署到很多JVM上去实现程序的分布式并行运算…...

django学习入门系列之第十点《A 案例: 员工管理系统10》
文章目录 12 管理员操作12.4 密码加密12.5 获取对象(防止id错误--编辑界面等)12.6 编辑管理员12.7 重置密码 往期回顾 12 管理员操作 12.4 密码加密 密码不应该以明文的方式直接存储到数据库,应该加密才放进去 定义一个md5的方法ÿ…...

Unity实战案例全解析:PVZ 植物卡片状态分析
Siki学院2023的PVZ免费了,学一下也坏 卡片状态 卡片可以有三种状态: 1.阳光足够,(且cd好了可以种植) 2.阳光不够,(cd?好了:没好 (三目运算符)&…...

判断变量是否为有限数字(非无穷大或NaN)math.isfinite() 判断变量是否为无穷大(正无穷大或负无穷大)math.isinf()
【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 判断变量是否为有限数字(非无穷大或NaN) math.isfinite() 判断变量是否为无穷大(正无穷大或负无穷大) math.isinf() 请问关于以下代码表述错误…...

idea使用阿里云服务器运行jar包
说明:因为我用的阿里云服务器不是自己的,所以一些具体的操作可能不太全面。看到一个很完整的教程,供参考。 0. 打包项目 这里使用的是maven打包。 在pom.xml中添加以下模块。 <build><plugins><plugin><groupId>org…...

解决nginx代理SSE接口的响应没有流式返回
目录 现象原来的nginx配置解决 现象 前后端分离的项目,前端访问被nginx反向代理的后端SSE接口,预期是流式返回,但经常是很久不响应,一响应全部结果一下子都返回了。查看后端项目的日志,响应其实是流式产生的。推测是n…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...