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

布局管理(Layouts)-Qt-思维导图-学习笔记

布局管理(Layouts)

在这里插入图片描述

Qt 提供了非常丰富的布局类,主要包括以下基本布局管理类

QBoxLayout

  • 提供了水平和垂直的布局管理,可以将子部件按行或列排列。根据排列方向的不同,QBoxLayout 分为 QHBoxLayout(水平布局)和 QVBoxLayout(垂直布局)

QGridLayout

  • 提供了网格形式的布局管理,可以将子部件按行和列排列,类似于表格的布局方式,适合需要严格对齐的布局场景

QFormLayout

  • 提供了将输入部件和标签成组排列的布局管理,常用于表单界面,标签和输入控件成对出现并对齐

QStackedLayout

  • 提供了一组布局后的部件,可以对它们进行分布显示。它允许在不同的页面或视图之间切换,每次只显示一个部件

继承关系及嵌套使用

  • 继承关系

    • 这些布局类都继承自 QLayout,而 QLayout 继承自 QObject,而不是 QWidget。这意味着布局类管理子部件的位置和大小,而不是直接显示内容
  • 嵌套使用

    • 可以将这些布局类彼此嵌套,以创建更加复杂的用户界面布局。例如,可以在一个 QVBoxLayout 中嵌入一个 QHBoxLayout,以实现混合排列效果

Layouts 组里面的 4 种布局

(1)Vertiacl Layout:垂直布局

(2)Horizontal Layout:水平布局

QBoxLayout

  • 控件简介

    • 继承关系:QBoxLayout 继承自 QLayout

    • 排列方式:提供水平或垂直排列子部件的能力

    • 空间管理:获取从其父布局或 parentWidget() 中获得的可用空间,并将其分成一列框

    • 子部件填充:每个托管小部件填充一个框,从而实现均匀分布

  • 用法示例

    • 使用几个按钮,将他们设置为垂直排布和水平排布,以及设置它们的一些属性

    • 新建例程中不要勾选“Generate form”,默认继承 QMainWindow 类即可

    • mainwindow.h

      • 1 #ifndef MAINWINDOW_H
        2 #define MAINWINDOW_H
        3
        4 #include
        5 #include
        6 #include
        7 #include
        8
        9 class MainWindow : public QMainWindow
        10 {
        11 Q_OBJECT
        12
        13 public:
        14 MainWindow(QWidget parent = nullptr);
        15 ~MainWindow();
        16
        17 private:
        18 /
        声明按钮对象数组 */
        19 QPushButton pushButton[6];
        20
        21 /
        定义两个 widget,用于容纳排布按钮 */
        22 QWidget *hWidget;
        23 QWidget vWidget;
        24
        25 /
        QHBoxLayout 与 QVBoxLayout 对象 */
        26 QHBoxLayout *hLayout;
        27 QVBoxLayout *vLayout;
        28
        29 };
        30 #endif // MAINWINDOW_H
    • mainwindow.cpp

      • 1 #include “mainwindow.h”
        2 #include
        3
        4 MainWindow::MainWindow(QWidget parent)
        5 : QMainWindow(parent)
        6{
        7 /
        设置主窗口的位置与大小 /
        8 this->setGeometry(0, 0, 800, 480);
        9
        10 /
        实例化与设置位置大小 /
        11 hWidget = new QWidget(this);
        12 hWidget->setGeometry(0, 0, 800, 240);
        13
        14 vWidget = new QWidget(this);
        15 vWidget->setGeometry(0, 240, 800, 240);
        16
        17 hLayout = new QHBoxLayout();
        18 vLayout = new QVBoxLayout();
        19
        20 /
        QList是 Qt 的一种泛型容器类。
        21 * 它以链表方式存储一组值,
        22 * 并能对这组数据进行快速索引
        23 /
        24 QList list;
        25 /
        将字符串值插入 list /
        26 list<<“one”<<“two”<<“three”<<“four”<<“five”<<“six”;
        27
        28 /
        用一个循环实例化 6 个按钮 /
        29 for(int i = 0; i < 6; i++){
        30 pushButton[i] = new QPushButton();
        31 pushButton[i]->setText(list[i]);
        32 if(i < 3) {
        33 /
        将按钮添加至 hLayout 中 /
        34 hLayout->addWidget(pushButton[i]);
        35 } else {
        36 /
        将按钮添加至 vLayout 中 /
        37 vLayout->addWidget(pushButton[i]);
        38 }
        39 }
        40 /
        设置间隔为 50 /
        41 hLayout->setSpacing(50);
        42
        43 /
        hWidget 与 vWidget 的布局设置为 hLayout/vLayout */
        44 hWidget->setLayout(hLayout);
        45 vWidget->setLayout(vLayout);
        46 }
        47
        48 MainWindow::~MainWindow()
        49 {
        50 }
    • main.cpp

      • 由新建项目时生成,无改动
  • 运行效果

    • 在 hWidget 中添加了 3 个水平排布的按钮,在 vWidget
      中添加了 3 个垂直排布的按钮

(3) Grid Layout:网格布局

  • QGridLayout

    • 控件简介

      • 继承关系:QGridLayout 继承自 QLayout

      • 空间管理:获取可用的空间(通过父布局或 parentWidget()),并将该空间划分为行和列

      • 子部件定位:将管理的每个小部件放入正确的单元格中

      • 动态调整:由于网格布局会随着窗口拉伸而变化,需设置组件之间的比例系数

      • 行列比例:与 QBoxLayout 不同,网格布局还需要分别设置行和列的比例系数,以实现更灵活的布局

    • 用法示例

      • 使用几个按钮,将他们设置为网格布局,同时设置它们的行、列比例系数(拉伸因子),以及设置它们的一些属性

      • 不要勾选“Generate form”,默认继承 QMainWindow 类即可

      • mainwindow.h

        • 1 #ifndef MAINWINDOW_H
          2 #define MAINWINDOW_H
          3
          4 #include
          5 #include
          6 #include
          7
          8 class MainWindow : public QMainWindow
          9{
          10 Q_OBJECT
          11
          12 public:
          13 MainWindow(QWidget parent = nullptr);
          14 ~MainWindow();
          15 private:
          16
          17 /
          声明 widget 窗口部件,用于容纳下面 4 个 pushButton 按钮 */
          18 QWidget gWidget;
          19
          20 /
          声明 QGridLayout 对象 */
          21 QGridLayout gridLayout;
          22
          23 /
          声明 pushButton 按钮数组 */
          24 QPushButton *pushButton[4];
          25
          26 };
          27 #endif // MAINWINDOW_H
      • mainwindow.cpp

        • 1 #include “mainwindow.h”
          2
          3 MainWindow::MainWindow(QWidget parent)
          4 : QMainWindow(parent)
          5{
          6 /
          设置位置与大小 /
          7 this->setGeometry(0, 0, 800, 480);
          8
          9 /
          实例化 /
          10 gWidget = new QWidget(this);
          11 /
          设置 gWidget 居中央 /
          12 this->setCentralWidget(gWidget);
          13
          14 gridLayout = new QGridLayout();
          15 /
          QList 链表,字符串类型 /
          16 QList list;
          17 list<<“按钮 1”<<“按钮 2”<<“按钮 3”<<“按钮 4”;
          18 for (int i = 0; i < 4; i++){
          19 pushButton[i] = new QPushButton();
          20 pushButton[i]->setText(list[i]);
          21 /
          设置最小宽度与高度 /
          22 pushButton[i]->setMinimumSize(100, 30);
          23 /
          自动调整按钮的大小 /
          24 pushButton[i]->setSizePolicy(
          25 QSizePolicy::Expanding,
          26 QSizePolicy::Expanding
          27 );
          28 switch (i) {
          29 case 0:
          30 /
          将 pushButton[0]添加至网格的坐标(0,0),下同 /
          31 gridLayout->addWidget(pushButton[i], 0, 0);
          32 break;
          33 case 1:
          34 gridLayout->addWidget(pushButton[i], 0, 1);
          35 break;
          36 case 2:
          37 gridLayout->addWidget(pushButton[i], 1, 0);
          38 break;
          39 case 3:
          40 gridLayout->addWidget(pushButton[i], 1, 1);
          41 break;
          42 default:
          43 break;
          44 }
          45 }
          46 /
          设置第 0 行与第 1 行的行比例系数 /
          47 gridLayout->setRowStretch(0, 2);
          48 gridLayout->setRowStretch(1, 3);
          49
          50 /
          设置第 0 列与第 1 列的列比例系数 /
          51 gridLayout->setColumnStretch(0, 1);
          52 gridLayout->setColumnStretch(1, 3);
          53
          54 /
          将 gridLayout 设置到 gWidget */
          55 gWidget->setLayout(gridLayout);
          56 }
          57
          58 MainWindow::~MainWindow()
          59 {
          60 }
      • main.cpp

        • 由新建项目时生成,无改动
    • 运行效果

      • 在 gWidget 中添加了 4 个按钮,因为设置了行、列的系数比(拉伸因子),所以看到的按钮是按系数比的比例显示

(4)Form Layout:表单布局

  • QFormLayout

    • 控件简介

      • 继承关系:QFormLayout 继承自 QLayout

      • 功能:管理输入小部件及其关联标签的表单

      • 布局形式:以两列的形式布局子部件,左列由标签组成,右列由输入小部件(如 QLineEdit(行编辑器)、QSpinBox(旋转框等))组成

      • 换行策略:通常使用 setRowWrapPolicy(RowWrapPolicy policy) 接口函数设置布局的换行策略,以控制布局效果

    • 用法示例

      • 使用 addRow(const QString &labelText,
        QWidget *field)来创建一个带有给定文本的 QLabel 及 QWidget 小部件,并且它们是伙伴关系

      • 不要勾选“Generate form”,默认继承 QMainWindow 类即可

      • mainwindow.h

        • 1 #ifndef MAINWINDOW_H
          2 #define MAINWINDOW_H
          3
          4 #include
          5 #include
          6 #include
          7
          8 class MainWindow : public QMainWindow
          9{
          10 Q_OBJECT
          11
          12 public:
          13 MainWindow(QWidget parent = nullptr);
          14 ~MainWindow();
          15 private:
          16 /
          widget 对象 */
          17 QWidget fWidget;
          18
          19 /
          用于输入用户名 */
          20 QLineEdit userLineEdit;
          21
          22 /
          用于输入密码 */
          23 QLineEdit passwordLineEdit;
          24
          25 /
          声明 QFormLayout 对象 */
          26 QFormLayout *formLayout;
          27 };
          28 #endif // MAINWINDOW_H
      • mainwindow.cpp

        • 1 #include “mainwindow.h”
          2
          3 MainWindow::MainWindow(QWidget parent)
          4 : QMainWindow(parent)
          5{
          6 /
          设置位置与大小 /
          7 this->setGeometry(0, 0, 800, 480);
          8
          9 /
          实例化及设置位置与大小,下同 /
          10 fWidget = new QWidget(this);
          11 fWidget->setGeometry(250, 100, 300, 200);
          12
          13 userLineEdit = new QLineEdit();
          14 passwordLineEdit = new QLineEdit();
          15
          16 formLayout = new QFormLayout();
          17
          18 /
          添加行 /
          19 formLayout->addRow(“用户名:”, userLineEdit);
          20 formLayout->addRow(“密码 :”, passwordLineEdit);
          21
          22 /
          设置水平垂直间距 /
          23 formLayout->setSpacing(10);
          24
          25 /
          设置布局外框的宽度 /
          26 formLayout->setMargin(20);
          27
          28 /
          将 formLayout 布局到 fWidget */
          29 fWidget->setLayout(formLayout);
          30 }
          31
          32 MainWindow::~MainWindow()
          33 {
          34 }
      • main.cpp

        • 由新建项目时生成,无改动
    • 运行效果

      • 在 fWidget 中添加了两行,同时设置了它们的间隔,与距边框的宽度。与 QGirdLayout 布局比较,QFomLayout 布局比较适用于行与列比较少的布局格局。如果是多行多列的布局,应该使用 QGirdLayout 布局

相关文章:

布局管理(Layouts)-Qt-思维导图-学习笔记

布局管理(Layouts) Qt 提供了非常丰富的布局类&#xff0c;主要包括以下基本布局管理类 QBoxLayout 提供了水平和垂直的布局管理&#xff0c;可以将子部件按行或列排列。根据排列方向的不同&#xff0c;QBoxLayout 分为 QHBoxLayout&#xff08;水平布局&#xff09;和 QVBox…...

《区块链赋能游戏业:破解虚拟资产交易与确权难题》

在当今数字化的时代&#xff0c;游戏行业正以前所未有的速度发展&#xff0c;虚拟资产在游戏中的重要性日益凸显。然而&#xff0c;虚拟资产的交易和确权问题一直困扰着游戏开发者和玩家。随着区块链技术的引入&#xff0c;为解决这些问题带来了新的曙光。 首先&#xff0c;我…...

机器学习第十一章-特征选择与稀疏学习

11.1子集收集与评价 属性称为"特征" &#xff0c;对当前学习任务有用的属性称为"相关特征" 、没什么用的属性称为"无关特 征" . 从给定的特征集合中选择出相关特征于集的过程&#xff0c;称为"特征选择"。 特征选择是一个重要的"…...

C#中客户端直接引用服务端Proto文件

gRPC 客户端是从 .proto 文件生成的具体客户端类型。 具体 gRPC 客户端具有转换为 .proto 文件中 gRPC 服务的方法。 下一步打开【服务引用】 控制面板 选择grpc选项&#xff0c;然后继续 到此配置完成&#xff0c;然后就和服务共用一份protocol文件...

SiLM5932SHO系列SiLM5932SHOCG-DG 12A/12A强劲驱动电流能力 支持主动短路保护功能(ASC)单通道隔离门极驱动器

SiLM5932SHO系列是一款单通道隔离驱动器&#xff0c;提供12A源电流和12A灌电流。主动保护功能包括退饱和过流检测、UVLO、隔离故障报警和 4A 米勒钳位。输入侧电源的工作电压为3V至5.5V&#xff0c;输出侧电源的工作电压范围为13V至30V。所有电源电压引脚都有欠压锁定 (UVLO) 保…...

本地项目上传github

一、先在github&#xff08;GitHub: Let’s build from here GitHub&#xff09;上创建仓库 1&#xff0c;登录github后&#xff0c;点击右上角头像&#xff0c;点击 Your repositories 2&#xff0c;点击new 3&#xff0c;填写仓库名&#xff0c;假设命名 testhub&#xff0…...

使用zip包来安装mysql

下载 下载地址mysql,使用5.7.23 配置环境变量 添加到系统变量中 C:\Users\Admin\Downloads\mysql-5.7.23-win32\bin 添加my.ini配置文件 在C:\Users\Admin\Downloads\mysql-5.7.23-win32目录下添加my.ini [mysqld] # 设置3306端口 port3306# 自定义设置mysql的安装目录 b…...

嵌入式面经篇十——驱动开发

文章目录 前言一、驱动开发1、Linux 驱动程序的功能是什么&#xff1f;2、内核程序中申请内存使用什么函数&#xff1f;3、内核程序中申请内存和应用程序时申请内存有什么区别&#xff1f;4、自旋锁和信号量在互斥使用时需要注意什么&#xff1f;在中断服务程序里面的互斥是使用…...

MySQL(四)——常用函数

文章目录 函数字符串函数数值函数日期函数流程函数 函数 函数&#xff0c;是指一段可以直接被另一段程序调用的程序或代码。 MySQL中内置了许多函数&#xff0c;我们只需在合适的场景下调用它们即可&#xff0c;调用函数查询结果直接使用SELECT即可&#xff0c;并且可以嵌套使…...

C++ //练习 17.38 扩展上一题中你的程序,将读入的每个单词打印到它所在的行。

C Primer&#xff08;第5版&#xff09; 练习 17.38 练习 17.38 扩展上一题中你的程序&#xff0c;将读入的每个单词打印到它所在的行。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 #include<iostream> #include<…...

NC 丑数

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 把只包含质因…...

Spring Boot 整合 Spring AI 实现项目接入ChatGPT(OpenAl的调用)

当前各种AI项目层出不穷&#xff0c;但绝大多数都是用python写的&#xff0c;现在Spring开源了Spring AI项目&#xff0c;让Java开发者也可以轻松给自己的springboot项目集成AI能力。目前spring AI正式版本为0.8.1&#xff0c;支持接入openAI、Ollama、Azure openAI、Huggingfa…...

react中 useContext 和useReducer的使用

在React中&#xff0c;useContext 和 useReducer 是两个非常有用的Hooks&#xff0c;它们分别用于管理跨组件的状态和复杂的状态逻辑。下面将分别介绍这两个Hooks的使用方式及其结合使用的场景。 1. useContext useContext 允许你订阅React的Context变化。Context提供了一种在…...

Android:动态更新app启动图标和应用名

一、需求背景 每逢重要佳节&#xff0c;很多应用启动图标会自动更新为对应佳节的图标&#xff0c;应用无需更新。 二、效果图 更新后的启动图标和应用名称 三、实现流程 Android app只能替换内置的icon&#xff0c;因此需要提前将logo图标放入App资源文件件里 实际项目App更新…...

深入探讨 ElementUI 动态渲染 el-table

在前端开发中&#xff0c;表格是不可或缺的一部分。无论是数据展示、数据录入&#xff0c;还是数据分析&#xff0c;表格都扮演着重要的角色。而在 Vue.js 生态系统中&#xff0c;ElementUI 提供了一个强大且灵活的表格组件——el-table。本文将带你深入了解如何使用 ElementUI…...

数据炼金术:用Python爬虫精炼信息

标题&#xff1a;数据炼金术&#xff1a;用Python爬虫精炼信息 在数据泛滥的互联网时代&#xff0c;Python爬虫不仅是搜集信息的利器&#xff0c;更是清洗和格式化数据的炼金术。本文将带你走进数据清洗和格式化的世界&#xff0c;展示如何使用Python爬虫从海量网络信息中提取…...

C++第三十八弹---一万六千字使用红黑树封装set和map

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、set/map基本结构 2、红黑树基本结构改造 3、红黑树的迭代器 4、set的模拟实现 5、map的模拟实现 6、完整代码 1、set/map基本结构 在封装…...

★ C++基础篇 ★ vector 类

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C基础篇第六章----vector类 ~ 目录 一 vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.4 vecto…...

原生js用Export2Excel导出excel单级表头和多级表头数据方式实现

原生js用Export2Excel导出excel单级表头和多级表头数据方式实现 原生js用Export2Excel导出excel单级表头和多级表头数据方式实现HTML文件导入需要的文件HTML文件中实现导出函数HTML总代码实现汇总&#xff08;直接复制代码&#xff0c;注意js引入路径&#xff09; 原生js用Expo…...

急需翻译PDF文件怎么办?pdf翻译在线快速帮你解决

面对满屏幕密密麻麻的pdf文件&#xff0c;我常常感到头疼&#xff01; 语言障碍让我在获取信息的道路上踌躇不前&#xff0c;但自从我发现了pdf在线翻译成中文的神奇工具&#xff0c;一切问题似乎都迎刃而解。 这些软件不仅让我能够快速跨过语言壁垒&#xff0c;还让我在学术…...

线程安全的集合类和并发数据结构

在Java中&#xff0c;线程安全的集合类和并发数据结构对于处理多线程环境下的数据共享和同步至关重要。这些集合和数据结构通过不同的机制来确保在多线程环境下数据的一致性和完整性。以下是一些常见的线程安全的集合类和并发数据结构&#xff1a; 线程安全的集合类 Vector 描…...

Linux环境下运行介绍

1. 文件编程函数介绍 如果在Linux系统下学习C语言&#xff0c;就会了解到两套文件编程接口函数&#xff1a; C语言标准的文件编程函数: fopen、fread、fwrite、fclose Linux下提供的文件编程函数: open、read、write、close 传参的区别: 基于文件指针: fopen fclose fread…...

Adobe Media Encoder ME 2023-23.6.6.2 解锁版下载安装教程 (专业的视频和音频编码渲染工具)

前言 Adobe Media Encoder&#xff08;简称Me&#xff09;是一款专业的音视频格式转码软件&#xff0c;文件格式转换软件。主要用来对音频和视频文件进行编码转换&#xff0c;支持格式非常多&#xff0c;使用系统预设设置&#xff0c;能更好的导出与相关设备兼容的文件。 一、…...

在go语言里io.EOF怎么理解呢?

Go语言在处理文件和其他I/O流时&#xff0c;会使用io.EOF常量来表示文件结束&#xff08;End Of File&#xff09;的情况。 io.EOF是Go标准库中io包定义的一个错误值&#xff0c;用于在读取操作达到文件末尾时返回。它是处理文件读取和I/O操作时常见的错误类型之一。当读取操作…...

日常编码工作与提升式学习两不误

在快速迭代的编程世界中&#xff0c;程序员们不仅需要高效完成日常编码任务&#xff0c;还需不断学习新技术、深化专业知识&#xff0c;以应对日益复杂的项目挑战。然而&#xff0c;如何在繁忙琐碎的编码工作与个人成长之间找到平衡&#xff0c;是不少程序员都面临的一个难题。…...

推荐被Stars5.8k的Java框架RuoYi

一直想做一款后台管理系统&#xff0c;看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的Web应用程序&#xff0c;如网站管理后台&#xff0c;网站会员中心&#xff0c;CMS&#xff0c;CRM&#xff0c…...

聊聊适配器模式

目录 适配器模式概念 主要实现方式 主要组成 UML用例图 代码示例 生活场景 应用场景 适配器模式概念 适配器模式属于结构型设计模式&#xff0c;它的主要目的是将一个类的接口转换成客户端所期望的另一种接口形式&#xff0c;使得原本接口不兼容的类可以一起工作。 主…...

韩国服务器的性能如何提升

韩国服务器的性能可以通过硬件升级、网络优化、缓存优化和软件优化来提升。具体方法如下&#xff0c;rak小编为您整理发布韩国服务器的性能如何提升。 1. 硬件升级 CPU升级&#xff1a;选择高性能的多核处理器&#xff0c;可以显著提升计算速度和响应能力。 内存升级&#xff1…...

体育器材管理系统的设计与实现---附源码 76709

摘 要 本文介绍了一种基于Spring Boot框架的体育器材管理系统&#xff0c;该系统旨在优化学校或教育机构对体育器材的管理流程。通过集成Spring Boot、MySQL、MyBatis以及前端HTML、CSS、JavaScript等技术&#xff0c;实现了器材信息的录入、查询、修改&#xff0c;器材的借用…...

ArcEngine提取面要素公共边的实现方法

1、前言 很久没写ArcEngine的内容了&#xff0c;正好这次有同志提了一个问题&#xff1a;如何用ArcEngine实现批量提取面要素之间的公共边&#xff1f;捣鼓了半天总算是解决了&#xff0c;下面就来说一说解决思路。 2、ArcMap的实现方法 首先准备一份测试数据&#xff0c;如…...

高可用集群keepalived 原理+实战

keepalived 1.高可用集群1.1简介1.2原理1.3 集群类型1.4实现高可用1.5VRRP&#xff1a;Virtual Router Redundancy Protocol1.5.1 VRRP 相关术语1.5.2VRRP 相关技术 2.实验2.1keepalived环境部署2.2抢占模式和非抢占模式2.2.1非抢占模式2.2.2抢占延迟模式 preempt_delay 2.3VIP…...

保姆级教程,带你复现病理AI的经典模型CLAM(一)|项目复现·24-08-19

小罗碎碎念 推文概述 复现CLAM的第一期推文 通过这期推文你首先会学会如何在服务器端使用jupyter编程&#xff0c;比你用其他的编译器&#xff08;例如PyCharm、VS&#xff09;会更加的清晰&#xff0c;对新手也更友好。 接着我会介绍如何进行数据预处理&#xff0c;以及你应…...

数据可视化之旅,从数据洞察到图表呈现,可视化的产品设计

图表作为数据可视化的重要工具&#xff0c;是对原始数据进行深度加工与解读的有效手段&#xff0c;它助力我们洞悉数据背后的真相&#xff0c;使我们能更好地适应这个由数据驱动的世界。无论是工作汇报、项目实施、产品设计、后台界面还是数据大屏展示&#xff0c;图表都扮演着…...

ArrayList 和 LinkedList 的区别是什么

数据结构实现&#xff1a;ArrayList 是动态数组的数据结构实现&#xff0c;而 LinkedList 是双向链表的数据结构实现。随机访问效率&#xff1a;ArrayList 比 LinkedList 在随机访问的时候效率要高&#xff0c;因为 LinkedList 是线性的数据存储方式&#xff0c;所以需要移动指…...

在Matlab中进行射频电路S、Z、Y、ABCD等参数的转换

在Matlab中进行射频电路S、Z、Y、ABCD等参数的转换 目录 在Matlab中进行射频电路S、Z、Y、ABCD等参数的转换1、转换案例-3dB电桥2、将转换结果应用到ADS中制造理想3dB电桥器件 在微带线的ABCD矩阵的推导、转换与级联-Matlab计算实例&#xff08;S、Z、Y参数转换&#xff09;中&…...

渗透实战——为喜欢的游戏“排忧解难”

本文仅用于技术研究学习&#xff0c;请遵守相关法律&#xff0c;禁止使用本文所提及的相关技术开展非法攻击行为&#xff0c;由于传播、利用本文所提供的信息而造成任何不良后果及损失&#xff0c;与本账号及作者无关。 资料查询来源- 安全社区与AI模型结合探索【文末申请免费…...

政务大数据解决方案(十)

政务大数据解决方案通过建立全面的集成数据平台&#xff0c;整合来自各政府部门的异构数据&#xff0c;运用大数据分析、人工智能和机器学习技术对数据进行深度挖掘与智能化处理&#xff0c;提供实时精准的决策支持&#xff0c;从而提升政策制定和实施的科学性与效率。该方案包…...

使用WebStorm进行高效的全栈JavaScript开发

使用WebStorm进行高效的全栈JavaScript开发&#xff0c;是一个涉及多方面技能与工具利用的过程。WebStorm&#xff0c;作为JetBrains公司推出的一款专为前端开发者和全栈工程师设计的集成开发环境&#xff08;IDE&#xff09;&#xff0c;以其强大的功能、卓越的性能和友好的用…...

数据导入导出(EasyExcel)框架入门指南

写在前面 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 文章目录 EasyExcel 框架概述依赖APIExcel 实体类注解写 Excel概念介绍写 Excel 通用参数WriteWorkbookWriteSheetWriteTable 代码…...

Ubuntu如何实现每天定时关机

要在Ubuntu中实现每天定时关机&#xff0c;你可以使用cron来安排定时任务。以下是具体的步骤&#xff1a; 步骤 1: 创建脚本 打开终端。使用文本编辑器创建一个新的文件。例如&#xff1a; nano ~/shutdown_script.sh 步骤 2: 编写脚本 在编辑器中输入以下内容&#xff1a…...

【MySQL进阶】事务、存储引擎、索引、SQL优化、锁

一、事务 1.概念 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向 系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 例子&#xff1a;转账&#xff0c;要求扣钱和进账…...

BeanDefinitionOverrideException产生原因及解决方案

BeanDefinitionOverrideException 是 Spring 框架中与依赖注入&#xff08;Dependency Injection&#xff09;相关的异常。它通常在 Spring 应用程序启动时抛出&#xff0c;当 Spring 在加载应用程序上下文时&#xff0c;检测到有多个相同名称的 Bean 定义被加载&#xff0c;并…...

配置Prettier+Vscode setting提高前端开发效率

前言 大家好&#xff0c;上一篇一文读懂 系列的文章中我们介绍了前端的代码格式化校验工具ESLient。代码格式是进行自动校验了&#xff0c;但你还要一个个的微调&#xff0c;很麻烦不是吗&#xff1f; 本文介绍和ESLient配合使用的Prettier实现编译器自动将代码格式化。 同时也…...

系统架构师计算题(1)——计算机系统基础知识(上)

持续刷题,持续总结,持续更新! 目录 1. 文件系统 题型1:多级索引 2. 存储管理 题型1:页式存储 题型2:段式存储 题型3:段页式存储 3. 磁盘读取 题型1:访问耗时 4. RAID 题型1:计算容量 1. 文件系统 文件在系统中的存储结构有如下几种: (1) 连续结构。 连续结构…...

2024/8/18周报

文章目录 摘要Abstract蚁群算法背景基本步骤应用TSP问题蚁群算法具体实现 遗传算法基本原理主要步骤遗传算法的主要组件遗传算法的应用遗传算法的优点遗传算法的局限性示例代码 多目标优化算法多目标优化的基本概念多目标优化算法的分类NSGA-II 算法示例 总结 摘要 本周对项目…...

端点安全新纪元:EDR与XDR技术的融合应用

在数字时代&#xff0c;随着网络威胁的日益复杂化和多样化&#xff0c;端点安全成为了企业组织不可或缺的重要防线。传统的防病毒软件和防火墙等安全解决方案已难以满足当前的安全需求&#xff0c;而EDR&#xff08;端点检测与响应&#xff09;和XDR&#xff08;扩展检测与响应…...

机器学习:多元线性回归模型

目录 前言 一、讲在前面 1.多元_血压.csv&#xff1a; 2.完整代码&#xff1a; 3.运行结果&#xff1a; 二、实现步骤 1.导入库 2.导入数据 3.绘制散点图&#xff08;这步可以省略&#xff09; ​编辑 4.求特征和标签的相关系数 5.建立并训练线性回归模型 6.检验模…...

树莓派5环境配置笔记 新建虚拟python环境—安装第三方库—配置Thonny解释器

树莓派5虚拟环境配及第三方库的安装&#x1f680; 在完成了树莓派的系统下载和各项基础配置之后进入到了&#xff0c;传感器开发部分&#xff0c;在测试传感器开发之前我打算先安装一下自己需要的库&#xff0c;但是在我直接在系统的根目录下运行pip命令的时候总会报环境错误&a…...

浅谈Winform

一、Winform简介说明 C# 是一种面向对象的编程语言&#xff0c;由微软开发并作为.NET框架的主要编程语言。C# 设计时考虑了易用性&#xff0c;并且具有丰富的特性&#xff0c;如垃圾回收、异常处理、泛型、LINQ&#xff08;Language Integrated Query&#xff09;、异步编程等。…...

MySQL(二)——CRUD

文章目录 CRUD新增全列插入指定列插入插入查询结果 查询全列查询指定列查询查询字段为表达式表达式不包含字段表达式包含一个字段表达式包含多个字段 补充&#xff1a;别名去重查询排序条件查询 补充&#xff1a;运算符区间查询模糊查询NULL的查询 分页查询聚合查询聚合函数 分…...