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

QT跨平台应用程序开发框架(1)—— 环境搭建

目录

一,关于QT

 二,关于应用程序框架

三,环境搭建

3.1 预备

3.2 下载Qt SDK

3.3 安装Qt SDK

 3.4 配置环境变量

3.5 认识一些重要工具

四,Qt Creator 的基本使用

4.1 创建项目 

4.2 代码解释


一,关于QT

  • 互联网核心岗位大致分为四种:开发,测试,运维,产品经理;开发又分为后端开发,前端开发,算法工程师,游戏开发等,前端开发还可以细分,比如网页端开发,桌面应用开发,移动应用开发
  • QT是用于进行客户端开发的,属于前端开发的桌面应用开发,又叫客户端开发
  • 准确来说,QT特指用来进行桌面应用开发所涉及到的一套计数,并且QT无法开发网页前端,也不能开发移动应用(目前官方也支持移动应用开发了,但是目前还没有知名的商用移动应用程序是QT开发的,就是不知道有没有人用)
  • 客户端开发的主要任务,就是编写和用户交互的界面,目前我们接触到的交互页面主要是两种:①命令行终端页面,比如cmd    ②图形化界面;前者适合专业人员用,后者适合普通用户,QT是用来编写桌面GUI程序的一套框架
  • 其实在Windows上编写GUI程序,也有很多解决方案,QT只是其中一种

 Windows下还有哪些方案可以开发GUI?

  • Windows API:windows提供原生 API来进行GUI开发,但是开发起开非常繁琐也非常原始,是最早期开发图形化界面的方式
  • MFC:是上世纪九十年代具有非常大影响力的一种GUI开发方法,与VC 6.0 一起极大促进了开发方式由原始到便捷的转变
  • QT也是在1991年左右诞生,和MFC不同,MFC早就停止更新了(寄了),QT直到现在仍在不停地更新和维护,仍然非常有生命力,并且能够跨平台,属于“六边形战士”
  • Windows Forms:微软给自家开发的 C# 量身定制地一套GUI开发体系
  • Electron:本质上是把 HTML 这样的网页,打包成 Windows 上运行的客户端程序,是最近几年比较热门的一种技术,最初是用来开发 “atom” 文本编辑器的(GitHub开发的,但是后来atom寄了,被微软的VSCode挤下去了);但是这个也有缺点,就是开发出来的程序,运行效率比较堪忧,比上面的都低很多

 二,关于应用程序框架

“框架”这个词在java中很常见,但是在C/C++中涉及的并不多,下面来介绍下什么是框架:

  • 框架本质是一群大佬发明出来方便底层程序员写代码的,一个东西越“自由”越“灵活”,就越容易出错,特别是对于我们程序猿来说,代码出错是最难受的了
  • 所以框架目的是为了限制程序员的自由,但是这并不是坏处,可以类比下没有红绿灯和有红绿灯的十字路口,框架能够减少程序员写代码出错的情况
  • 库和框架都是属于大佬们给全世界程序员的福利,库是被程序员调用的,框架则是“调用”程序员的,二者的主体地位不同,一般程序员配合框架,完善填充框架中流出的一些细节
  • 隔壁的 Java 更加依赖框架,比如Spring;而C/C++在代码编写上就比较自由

三,环境搭建

3.1 预备

QT开发环境,需要安装三个部分:

  • ①C++编译器(是编译器不是IDE,比如gcc,cl.exe等)
  • ②Qt SDK:SDK我们一般叫做软件开发工具包,里面包含了我们 进行 Qt 开发时要用到的各种工具,一般的Qt SDK 里面一般会内置C++编译器,一般建议用这个,如果要用曾经装VS时装的编译器可能还需要一些额外的配置,比较麻烦也容易出错
  • 需要有一个Qt的IDE,有很多,比如官方推荐的Qt Creator,是最容易入门也最容易上手的方式,并且不需要任何额外的配置(虽然这个IDE使用过程中有很多bug,但是整体来说还是挺方便的,适合初学者)
  • Visual Studio也可以进行Qt开发, 虽然功能更强但是需要更多额外的配置,上手较难,有些公司开发商业 Qt 程序的时候,可能会用到VS
  • Eclipse:本身是一个IDE平台,可以搭配不同的插件构成不同的IDE,也可以开发Qt,但是目前Eclipse市场份额受到的冲击很大,有更多的重量级(JetBrains)和轻量级工具(VSCode)来代替了

其实说是安装三个东西,其实只要安装一个Qt SDK,其它两个都有了 

3.2 下载Qt SDK

下载的官网网址为:https://download.qt.io/archive/qt/

 

 如果因为“众所周知”的原因导致上面的网站打不开或者下载很慢,需要 fq,并且不要做 wf 的行为哦,如果实在不行,可以尝试国内的镜像源:Index of /qt/archive/qt/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

3.3 安装Qt SDK

安装的第一步点击next即可,然后会出现这个页面:

之后一路点击下一步即可,就是安装路径不要带中文,不要带特殊符号和空格

之后一路确认然后安装即可

 3.4 配置环境变量

先找到我们前面安装Qt时的目录,找到如下bin文件夹,复制路径添加到环境变量中即可:

配环境变量是为了:

  • 让OS或者Qt Creator 工具能够找到Qt SDK 中提供的 exe
  • 让Qt 程序运行的时候,能够找到对应的. dll 动态库 

3.5 认识一些重要工具

可以在开始菜单下找到这个:

都是自带的一些工具程序,也是我们在开发中需要关注的:

①Qt官方文档 

 

  • 我们后面在写一些Qt代码时,可以在这里查某个类某个API,支持直接搜索(是英文的,但是也有中文文档,但是是非官方的,可以自行搜索)
  • 然后后面使用的话,我们一般也不会去开始菜单再找,Qt Creator 里面有快捷方式,后面再介绍

②图形化界面设计工具

  •  Qt 设计师可以通过拖拽控件的方式来快速生成界面,后面会经常使用,搭配Qt Creator 来使用

③国际化工具 

 

  • 国际化就是:有时候我们写的程序是要和国际接轨,比如我们在国内设计时是中文的,但是到了国外需要变成英文等其它语言
  • 允许我们单独创建一个语言配置文件,把界面上需要用到的各种文字,都配置到文件中,并且提前把各种语言的翻译都搞进去,这样就可以起到“一键切换语言”的功能

 ④命令行工具

 

  • 目前绝大多数开发工具都有命令行程序,因为这算是“传统” 

⑤Qt IDE 

 

  • 这个就是我们后面学习和使用Qt的主要工具

四,Qt Creator 的基本使用

4.1 创建项目 

①首先是新建项目:

②然后选择应用程序模板:

③然后是项目路径和名称

④然后是选择构建项目系统:

  •  通过Qt写的程序,涉及到一系列的“元编程”技术,就是通过代码来生成代码
  • Qt框架会在编译的时候会自动调用一系列的生成工具,基于我们自己写的代码,生成一系列的其它C++代码,最终编译的代码,也是最后生成的这些代码
  • 我们选择qmake,是一个老牌的Qt构建工具;CMake并非Qt专属,很多开源项目都会使用CMake,我们Linux系列博客有过介绍;Qbs是新一代构建工具,但是实际上用的人不多,目前已不在维护

⑤下一步就是对部分文件名的编辑:

 

我们介绍下这个Base class:

 

  • 我们使用Qt Creator 创建项目,会自动生成一些代码出来,生成的代码就包含一个类
  • 此处就是要选择这个自动生成的类的父类是哪个,有三个常见选项
  • QMainWindow:是一个完整的应用程序窗口,包含菜单栏工具栏状态栏等
  • QWidget:表示一个控件,表示窗口上的一个具体的元素,比如输入框,按钮,下拉框等
  • QDialog:表示一个对话框
  • 我们最开始学的话选择第二个,这个属于最简单的那个,容易入手;然后后面的文件名我们目前用它默认的(这里生成的文件名是和类名关联的,这种关联不强制,但是推荐大家搞成一样的)

我们再介绍下form file:

  • Qt 中创建图形化界面的程序有两种方式:①直接通过 C++ 代码的方式创建界面    ②通过form file,以图形化的方式来创建界面
  • 如果勾选了这个选框,就可以使用Qt Designe 或者直接使用 Qt Creator 来编辑这个 UI 文件,从而以图形化的方式快速方便地生成图形界面

⑥然后是选择翻译文件

 

  • 这个我们暂时不管,因为这个是和国际化相关地,直接点下一步

⑦选择编译器 

  • 就是选择基于哪个编译器的 Qt SDK 来构建后续代码,这个和我们前面安装时有关,直接下一步  

⑧工程管理工具 

  •  这个功能就是字面意思,比如我们可以选择git,添加到码云上,选择none即可,无影响

上面这些步骤全部完成后点击完成,就把项目创建好了,里面会有一些预备代码,直接点击左下角绿色箭头,就可以先来感受下运行结果了:

4.2 代码解释

创建好项目后会预先生成一些代码,我们来讲解一下这些代码做了什么

main.cpp 

  • main函数参数不多说了,Linux用过很多了,作用是读取命令行参数
  • 编写一个Qt的图形化界面程序,一定需要有 QApplication 对象
  • 然后就是widget对象,这个就是我们前面在创建项目的时候,填写的生成的类名;Widget 的父类就是QWidget
  • 所以上面代码的作用就是“创建一个控件对象,并显示出来”,这里的控件对象就是一个窗口
  •  后面的exec() 表示让程序执行起来,这个exec和Linux的那一系列exec函数不一样,Linux哪个表示“进程程序替换”,可以参考往期博客:Linux系统编程——进程控制_linux maincrtstartup-CSDN博客

widget.h 

 widget.cpp

widget.ui 

双击会直接切换到Qt Designer,然后打开ui文件,就会看到图形化的界面编辑器:

  • 此处约定的 xml 标签的含义,类似于之前 Linux 网络中的自定义应用层协议:计算机网络(五) —— 自定义协议简单网络程序-CSDN博客
  • Qt 中使用xml文件就是去描述程序的界面是啥样的,进一步的 qmake 会调用相关的工具,依据这个 xml 文件来生成一些 C++ 代码,从而把完整的界面构造出来

xxx.pro

 

然后,在这个目录的上级目录,有一个和我们项目目录并列的目录:

 

 

相关文章:

QT跨平台应用程序开发框架(1)—— 环境搭建

目录 一,关于QT 二,关于应用程序框架 三,环境搭建 3.1 预备 3.2 下载Qt SDK 3.3 安装Qt SDK 3.4 配置环境变量 3.5 认识一些重要工具 四,Qt Creator 的基本使用 4.1 创建项目 4.2 代码解释 一,关于QT 互联网…...

HTB:Paper[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 对靶机进行子域…...

【数据可视化-12】数据分析岗位招聘分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

UE材质节点Fresnel

Fresnel节点 ExponentIn 控制边缘透明度 BaseReflectFractionIn 控制中心透明度...

宁德时代C++后端开发面试题及参考答案

请阐述面向对象的三大特性。 面向对象编程有三大特性,分别是封装、继承和多态。 封装是指将数据和操作数据的方法绑定在一起,对数据的访问和操作进行限制。这样做的好处是可以隐藏对象的内部细节,只暴露必要的接口给外部。例如,我们可以把一个汽车类的内部引擎状态、速度等…...

opencv warpAffine仿射变换C++源码分析

基于opencv 3.1.0源代码 sources\modules\imgproc\src\imgwarp.cpp void cv::warpAffine( InputArray _src, OutputArray _dst,InputArray _M0, Size dsize,int flags, int borderType, const Scalar& borderValue ) {...if( !(flags & WARP_INVERSE_MAP) ){//变换矩阵…...

六十九:基于openssl实战验证RSA

RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于数据加密和数字签名领域。在实际开发和学习过程中,理解 RSA 的工作原理和使用场景非常重要。本文将以 OpenSSL 工具为基础,通过实例操作来验证和理解 RSA 的…...

Docker的CMD指令

CMD指令是Dockerfile中的一个重要指令,用于指定容器启动时执行的默认命令。CMD为容器运行时提供了一个默认的执行指令,可以在容器启动时自动运行该命令。 * CMD指令用于指定容器启动时的默认命令 CMD指令指定的命令通常是容器启动后要执行的主要进程。…...

redis缓存篇知识点总结

1.缓存雪崩 当大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大量的用户请求,都无法在 Redis 中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃 发生缓存雪崩有两…...

onlyoffice编辑服务部署

下载官方镜像 下载onlyoffice_7.4.1.tar.gz镜像包 安装官方镜像 上传镜像包后执行 docker load -i onlyoffice_7.4.1.tar.gz 将镜像部署到本地仓库 下载onlyoffice编辑服务包 下载onlyoffice.zip包 启动onlyoffice编辑服务 上传包至服务器,解压包,…...

RPC实现原理,怎么跟调用本地一样

回答1 要让⽹络通信细节对使⽤者透明,我们需要对通信细节进⾏封装,我们先看下⼀个 RPC 调⽤的流程涉及到哪些通 信细节: 1. 服务消费⽅( client )调⽤以本地调⽤⽅式调⽤服务; 2. client stub 接收到调…...

JDK下载安装配置

一.JDK安装配置。 1.安装注意路径,其他直接下一步。 2.配置。 下接第4步. 或者 代码复制: JAVA_HOME D:\Program Files\Java\jdk1.8.0_91 %JAVA_HOME%\bin 或者直接配置 D:\Program Files\Java\jdk1.8.0_91\bin 3.验证(CMD)。 java javac java -version javac -version 二.下…...

C++(3)

1.顺序表封装 #include <iostream>using namespace std;//类型重命名 using datatype int;//定义一个顺序表类 class SeqList { private:datatype *data;//指向堆区空间的指针int size 0;//数组大小int len 0;//顺序表实际长度public://无参构造SeqList():data(new d…...

工具学习_Conan_Install

1. 依赖关系获取 为了获取TPL间的依赖关系&#xff0c;我们首先从 GitHub 项目中提取 Conan 包含的组件&#xff0c;如下所示&#xff1a; 在获取组件名之后&#xff0c;我们根据组件名从 Conan 中获取 TPL 间的依赖关系&#xff0c;如下图所示&#xff1a; 之后获得包含TPL间…...

忘记了PDF文件的密码,怎么办?

PDF文件可以加密&#xff0c;大家都不陌生&#xff0c;并且大家应该也都知道PDF文件有两种密码&#xff0c;一个打开密码、一个限制编辑密码&#xff0c;因为PDF文件设置了密码&#xff0c;那么打开、编辑PDF文件就会受到限制。忘记了PDF密码该如何解密&#xff1f; PDF和offi…...

HTML实战课堂之启动动画弹窗

一&#xff1a;代码片段讲解 小提示&#xff1a;下面是一个包含启动页和弹窗的完整示例。这个示例包括一个简单的启动页和一个弹窗&#xff0c;当用户点击启动页上的按钮时&#xff0c;会显示弹窗。 1. **HTML结构**&#xff1a; - #startPage&#xff1a;启动页&#xff0c;包…...

thinkphp 5.0 结合redis 做延迟队列,队列无法被消费

目录 一、Linux 环境下 二、如何验证消息队列被正确监听 一、Linux 环境下 项目部署在Linux 环境下&#xff0c;首先找到项目的部署路径&#xff0c;接着输入命令,这个命令是以守护进程方式进行监听你的队列&#xff0c;只要redis 不关闭 就可以一直监听这个队列 nohup php …...

open3d+opencv实现矩形框裁剪点云操作(C++)

&#x1f451;主页&#xff1a;吾名招财 &#x1f453;简介&#xff1a;工科学硕&#xff0c;研究方向机器视觉&#xff0c;爱好较广泛… ​&#x1f4ab;签名&#xff1a;面朝大海&#xff0c;春暖花开&#xff01; open3dopencv实现矩形框裁剪点云操作&#xff08;C&#xff…...

Android RIL(Radio Interface Layer)全面概述和知识要点(3万字长文)

在Android面试时,懂得越多越深android framework的知识,越为自己加分。 目录 第一章:RIL 概述 1.1 RIL 的定义与作用 1.2 RIL 的发展历程 1.3 RIL 与 Android 系统的关系 第二章:RIL 的架构与工作原理 2.1 RIL 的架构组成 2.2 RIL 的工作原理 2.3 RIL 的接口与协议…...

mac安装java17

目录 1、确保 Homebrew 已安装。如果没有安装&#xff0c;运行以下命令2、安装 OpenJDK 173、安装完成后&#xff0c;运行以下命令设置环境变量4、检查一下 1、确保 Homebrew 已安装。如果没有安装&#xff0c;运行以下命令 /bin/bash -c "$(curl -fsSL https://raw.gith…...

npx和npm区别

npx 和 npm 是 Node.js 生态中的两个工具&#xff0c;它们有不同的用途和功能&#xff1a; 1. npm&#xff08;Node Package Manager&#xff09; 主要作用&#xff1a; 包管理工具&#xff1a; 用来安装、管理、卸载 Node.js 的包&#xff08;module/library&#xff09;。提…...

STM32 FreeRTOS 介绍

目录 什么是裸机开发 什么是操作系统 通用操作系统 实时操作系统 FreeRTOS简介 FreeRTOS发展历史 FreeRTOS优势 FreeRTOS特点 什么是裸机开发 裸机开发指的是在没有操作系统&#xff08;OS&#xff09;或者其他高级软件支持的情况下&#xff0c;直接在裸机硬件上进行软…...

C#面向对象(封装,继承,多态,抽象)--08

目录 一.类和对象 1.类(Class) 2.对象 二.继承 1.定义 2.实现方式 三.多态 1.定义 2.实现方式 3.代码示例 四.抽象 1.定义 2.实现方式 3.代码示例 总结 面向对象(OOP)是C#编程语言的核心概念之一.它通过类和对象的方式来组织代码,提供了更高的代码复用性,可拓展性…...

Frp工具配置内网穿透

Frp工具配置内网穿透 一.资源准备 ​ 固定 IP 的公网服务器&#xff1a;最低配 1C1G 即可&#xff0c;硬盘 20G&#xff0c;带宽 10M&#xff0c;系统推荐使用 Debian 9 或 10&#xff08; Ubuntu 20.04 LTS&#xff09;。安全组需要开放 443、8080、8081 端口&#xff08;其他…...

pg_hba.conf是PostgreSQL中控制客户端认证和访问权限的配置文件

报错提示&#xff1a;FATAL: no pg_hba.conf entry for host "117.26.241.1", user "postgres", databa 报错解释&#xff1a; 这个错误表示PostgreSQL数据库服务器没有找到适合的认证方式来处理来自特定IP地址&#xff08;在这个例子中是117.26.241.1&a…...

Winforms开发基础之非主线程操作UI控件的误区

前言 想象一下&#xff0c;你正在开发一个桌面应用程序&#xff0c;用户点击按钮后需要执行一个耗时操作。为了避免界面卡顿&#xff0c;你决定使用后台线程来处理任务。然而&#xff0c;当你在后台线程中尝试更新UI控件时&#xff0c;程序突然崩溃了。这是为什么呢&#xff1…...

【机器学习】主动学习-增加标签的操作方法-流式选择性采样(Stream-based selective sampling)

Stream-Based Selective Sampling Stream-based selective sampling 是一种主动学习方法&#xff0c;在处理大量数据流时特别有用。它允许学习算法动态选择是否对当前数据实例进行标注&#xff08;通过与 Oracle 交互&#xff09;。此方法主要应用于流数据场景中&#xff0c;目…...

STL之VectorMapList针对erase方法踩坑笔记

前沿 如下总结的三种容器&#xff0c;开头都会涉及当前容器的特点&#xff0c;再者就本次针对erase方法的使用避坑总结。 一.Vector vector关联关联容器&#xff0c;存储内存是连续&#xff0c;且特点支持快速访问&#xff0c;但是插入和删除效率比较地(需要找查找和移动)。另…...

Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为

一、--force-recreate 作用 强制重新创建指定的服务&#xff0c;即使服务的配置未发生任何变化。忽略现有容器的状态&#xff0c;无论容器是停止、运行还是有无变化&#xff0c;都会销毁并重新创建。 用法 docker compose up -d --force-recreate [services...]不指定服务&…...

【pycharm】远程部署失败,查看日志

pycharm 远程部署失败,查看日志 远程一直失败,gateway超时会还知道拉取一份日志: 在./root 下 发现了崩溃日志,启动崩溃了,导致backend一直无法启动。win11就是一直在connect到ubuntu的后端pycharm。。gateway 拉取的日志 我上传的linux版本的pycharm暂时存在dist目录下,…...

FilmMusic

电影推荐 《五朵金花》《沉睡魔咒》《三国之见龙卸甲》《灰姑娘》《正义联盟》《沉睡魔咒2》 《神奇女侠》《神奇女侠》HD中字在线观看 - 影视天堂 《野性的呼唤》《野性的呼唤2020》HD中字在线观看 - 影视天堂 《毒液2》《小马王》《秦时明月之百步飞剑》《秦时明月之夜尽…...

使用 Python 实现自动化办公(邮件、Excel)

目录 一、Python 自动化办公的准备工作 1.1 安装必要的库 1.2 设置邮件服务 二、邮件自动化处理 2.1 发送邮件 示例代码 注意事项 2.2 接收和读取邮件 示例代码 三、Excel 自动化处理 3.1 读取和写入 Excel 文件 示例代码 3.2 数据处理和分析 示例代码 四、综合…...

稀疏编码 (Sparse Coding) 算法详解与PyTorch实现

稀疏编码 (Sparse Coding) 算法详解与PyTorch实现 目录 稀疏编码 (Sparse Coding) 算法详解与PyTorch实现1. 稀疏编码 (Sparse Coding) 算法概述1.1 稀疏表示1.2 稀疏编码的优势2. 稀疏编码的核心技术2.1 稀疏编码的目标2.2 稀疏编码的优化2.3 基向量的学习3. PyTorch实现稀疏编…...

基于springboot的疫情网课管理系统

作者&#xff1a;学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”&#xff0c;支持远程部署调试、运行安装。 项目包含&#xff1a; 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…...

Cookie和Session

会话&#xff1a; 有状态会话&#xff1a; 客户端知道发起请求的是谁 无状态会话&#xff1a; 不知道发起请求的是谁 只知道有请求 http是无状态请求 保存会话信息的两种技术&#xff1a; 可以通过Cookie和Session储存会话信息 cookie&#xff1a;客户端技术 信心存…...

分布式ID—雪花算法

背景 现在的服务基本是分布式、微服务形式的&#xff0c;而且大数据量也导致分库分表的产生&#xff0c;对于水平分表就需要保证表中 id 的全局唯一性。 对于 MySQL 而言&#xff0c;一个表中的主键 id 一般使用自增的方式&#xff0c;但是如果进行水平分表之后&#xff0c;多…...

【无标题】四类sql语句通用

select select a from tableA where aa1&#xff1a; 总是丢掉from。。 运算&#xff1a; select a*3 b from tableA&#xff1b; 使用()来定义运算优先级。 别名 select a as xx from tableA&#xff1b;可以不加as&#xff0c;仅为增加可读性。 别名不可以中间有空格&…...

Vue的生命周期方法

Vue 的生命周期方法是指 Vue 实例从创建到销毁的过程中的一系列钩子函数。它们可以让你在特定时刻执行代码。Vue 2 和 Vue 3 的生命周期钩子大致相同&#xff0c;下面是 Vue 中常用的生命周期方法&#xff1a; 1. beforeCreate 在实例初始化之后&#xff0c;数据观测和事件配…...

Android SystemUI——基础简介(一)

Android SystemUI 是 Android 操作系统的一部分&#xff0c;负责处理与用户界面相关的所有元素。它是 Android 设备上的一个关键组件&#xff0c;管理着屏幕顶部的状态栏&#xff08;显示时间、信号强度、电池电量等&#xff09;、屏幕底部的导航栏&#xff08;返回、主页、最近…...

大疆机场及无人机上云

最近基于大疆上云api进行二次开发&#xff0c;后面将按照开发步骤对其进行说明&#xff01;...

js:正则表达式

目录 正则表达式的语法 定义 检测 检索 元字符 边界符 量词 字符类 表单判断案例 修饰符 过滤敏感词 正则表达式是一种用于匹配和操作文本的强大工具&#xff0c;它是由一系列字符和特殊字符组成的模式&#xff0c;用于描述要匹配的文本字符组合模式 正则表达式是一…...

【芯片设计- RTL 数字逻辑设计入门 9.2 -- flip flop 与 寄存器的关系详细介绍】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 Overview硬件角度的 Flip-Flop软件角度的寄存器举例说明硬件设计角度软件开发角度D Flip-Flop 实现基本原理:Verilog 代码:UT 示例JK Flip-Flop 实现基…...

JAVA实战开源项目:课程智能组卷系统(Vue+SpringBoot) 附源码

本文项目编号 T 009 &#xff0c;文末自助获取源码 \color{red}{T009&#xff0c;文末自助获取源码} T009&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 老…...

【Rust自学】11.8. 忽略测试

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.8.1. 忽略某些测试&#xff0c;执行剩余测试 某些测试执行起来非常耗时&#xff0c;所以在大部分情况下会想在运行cargo test时忽略它…...

浅谈云计算09 | 服务器虚拟化

服务器虚拟化基础 一、虚拟化的定义二、系统虚拟化三、服务器虚拟化的核心要义四、典型实现&#xff1a;探索不同路径五、全虚拟化与半虚拟化六、主流服务器虚拟化技术 一、虚拟化的定义 虚拟化是一种将物理资源抽象为逻辑资源的技术&#xff0c;通过在物理硬件与操作系统、应…...

【Ubuntu 24.04】虚拟机常见问题解决

1.24开启3D加速黑屏 参考文章&#xff1a;Ubuntu24开机黑屏&#xff0c;VMware卡死&#xff0c;虚拟机繁忙解决方案 没有3D加速就没有动画&#xff0c;所以我们需要开启3D加速&#xff0c;但是直接开启3D加速会黑屏 由于Ubuntu24内部的图形加速驱动异常&#xff0c;因此需要更新…...

【已解决】【记录】2AI大模型web UI使用tips 本地

docker desktop使用 互动 如果需要发送网页链接&#xff0c;就在链接上加上【#】号 如果要上传文件就点击这个➕号 中文回复 命令它只用中文回复&#xff0c;在右上角打开【对话高级设置】 输入提示词&#xff08;提示词使用英文会更好&#xff09; Must reply to the us…...

iostat命令详解

iostat 命令是 I/O statistics(输入/输出统计)的缩写&#xff0c;用来报告系统的 CPU 统计信息和块设备及其分区的 IO 统计信息。iostat 是 sysstat 工具集的一个工具&#xff0c;在 Ubuntu 系统中默认是不带 iostat 命令的&#xff0c;需要自行安装&#xff1a; $ sudo apt in…...

工程水印相机结合图纸,真实现场时间地点,如何使用水印相机,超简单方法只教一次!

在工程管理领域&#xff0c;精准记录现场信息至关重要。水印相机拍照功能&#xff0c;为工程人员提供了强大的现场信息记录工具&#xff0c;助力工程管理和统计工程量&#xff0c;更可以将图片分享到电脑、分享给同事&#xff0c;协同工作。 一、打开图纸 打开手机版CAD快速看图…...

vue城市道路交通流量预测可视化系统

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站、收藏、不迷路&#xff01; 项目亮点 编号&#xff1a;R09 &#x1f687; 网站大屏管理三大前端、vuespringbootmysql、前后端分离架构 &#x1f687; 流量预测道路查询…...