【qt】自定义对话框
自定义对话框
- 一.自定义对话框的使用
- 1.应用场景
- 2.项目效果
- 3.界面拖放
- 4.模型和视图的设置
- 5.action功能实现
- 二.自定义对话框的创建
- 1.设置对话框界面
- 2.创建对话框
- 三.对话框的功能与样式实现
- 1.对话框数据的交换
- 2.对话框的显示
- 3.设置对话框的特性
- 4.完成按钮的功能
- 四.编辑表头的对话框
- 1.对话框界面设计
- 2.创建对话框
- 3.为对话框添加模型
- 4.对话框功能实现
- 四.单元格的对话框
- 五.总结
一.自定义对话框的使用
1.应用场景
像我们前面一般就是只有一个主窗口,或者是只有一些简单的对话框,有的时候我们需要多窗口操作,并且需要一下高级的对话框的时候,我们就可以自定义来达到我们的需求。
2.项目效果
纸上得来终觉浅,咱们还是来继续跟着项目来
咱们有3个功能,我们就自定义3个对话框,并能完成相应的功能,OK,咋们开始吧!
3.界面拖放
这个我就不讲了,需要蔬菜的可以dd我
这里是把tableView设置为了中心组件
4.模型和视图的设置
还记得我们原来在tableView里面讲的的模型和视图嘛,现在我们来添加模型和设置视图。
哈哈,给你们截图,不给你们代码,自己敲,涨涨记性。
创建模型,并为视图设置模型!
运行结果:
但是很丑咯,只显示了一部分,还需要我手动放大,才能显示全,我们可以对表头的视图进行设置。
运行结果:
现在,表头就可以自动的拉伸,非常的银信,哈哈.
5.action功能实现
对咱们的action使用转到槽,接下来就是重点了.好好看,好好学!
二.自定义对话框的创建
1.设置对话框界面
选择不带按钮的对话框
类名,你自己随便起:
OK,现在就开始来设计我们的对话框,
这里可以设置按钮的图标哦.
设计完我们的对话框设计
2.创建对话框
首先在mainwindow.cpp包含咱们的头文件
void MainWindow::on_actionResize_triggered()
{DialogResize*dialogResize=new DialogResize(this);
}
这样我们自定义的对话框就创建好了!
三.对话框的功能与样式实现
1.对话框数据的交换
首先我们需要对话框拿到我们主窗口默认的行列数.
所以我们需要在dialogresize.h设置公有接口.
具体的实现:
现在就可以进行使用了
void MainWindow::on_actionResize_triggered()
{DialogResize*dialogResize=new DialogResize(this);dialogResize->setCol(model->columnCount());dialogResize->setRow(model->rowCount());}
但是现在我们点击这个按钮无效,因为对话框还没有进行显示!
2.对话框的显示
dialogResize->exec();//模态方式进行显示,就是必须要处理完对话框,才能对主窗口进行操作
运行结果:
3.设置对话框的特性
4.完成按钮的功能
现在我们点对话框的确定和取消都是没有用的.
对按钮转到槽
void DialogResize::on_pushButtonOK_clicked()
{//关闭对话框 并返回一个QDialog::Accepted的枚举值accept();
}void DialogResize::on_pushButtonCancel_clicked()
{//关闭对话框 并返回一个QDialog::Reject的枚举值reject();
}
那咱们这个返回值由谁来接收呢?答案就是对话框显示的接口
int ret=dialogResize->exec();//模态方式进行显示,就是必须要处理完对话框,才能对主窗口进行操作if(ret==QDialog::Accepted){//如果点击了确定,咱们就对主窗口的行列进行设置}
很明显,咱们现在需要去拿到对话框里面的数据,用面向对象的思想,去对话框里面设置接口.
具体实现:
int DialogResize::getRowCount()
{return ui->spinBoxRow->value();
}int DialogResize::getColCount()
{return ui->spinBoxCol->value();
}
现在就可以拿到数据,并对模型进行设置了
void MainWindow::on_actionResize_triggered()
{DialogResize*dialogResize=new DialogResize(this);dialogResize->setCol(model->columnCount());dialogResize->setRow(model->rowCount());//对话框固定,不能对对话框进行拉伸dialogResize->setWindowFlags(dialogResize->windowFlags()|Qt::MSWindowsFixedSizeDialogHint);int ret=dialogResize->exec();//模态方式进行显示,就是必须要处理完对话框,才能对主窗口进行操作if(ret==QDialog::Accepted){//如果点击了确定,咱们就对主窗口的行列进行设置int rows=dialogResize->getRowCount();int cols=dialogResize->getColCount();model->setRowCount(rows);model->setColumnCount(cols);}//因为每次打开都new了一个窗口,需要我们手动删除delete dialogResize;//每次我们要手动关闭
}
运行结果:
OK,就变成了10*10了
这样一个功能就基本把对话框的套路讲清楚了,接下来还有两个对话框,多注意一下细节就OK了.
四.编辑表头的对话框
1.对话框界面设计
2.创建对话框
这次我们在mainwindow.h中添加我们的对话框
添加私有成员
然后开始创建;
void MainWindow::on_actionHeader_triggered()
{//只创建一次,对话框可以重复使用if(dialogHeader==NULL){dialogHeader=new DialogHeader(this);//设置父窗口this,有个好处就是当我们关闭主窗口的时候,会调用对话框的析构函数}
}
3.为对话框添加模型
创建模型和视图设置模型:
4.对话框功能实现
我们需要获取表头的值来初始化对话框的视图模型
在dialogHeader.h中
实现:
void DialogHeader::setList(const QStringList &list)
{model->setStringList(list);
}
对按钮还是用转到槽:
void DialogHeader::on_pushButtonOK_clicked()
{accept();
}void DialogHeader::on_pushButtonCancel_clicked()
{reject();
}
我们还需要对话框的模型视图来设置主窗口的表头信息.
实现:
void MainWindow::on_actionHeader_triggered()
{//只创建一次,对话框可以重复使用if(dialogHeader==NULL){dialogHeader=new DialogHeader(this);//设置父窗口this,有个好处就是当我们关闭主窗口的时候,会调用对话框的析构函数}//将表头的数据设置到ListView视图中QStringList list;for(int i=0;i<model->columnCount();i++){list.append(model->headerData(i,Qt::Horizontal).toString());}dialogHeader->setList(list);int ret=dialogHeader->exec();if(ret==QDialog::Accepted){//设置水平表头的信息model->setHorizontalHeaderLabels(dialogHeader->getList());}
}
运行结果:
四.单元格的对话框
基本都差不多,我只重点的讲一下不同的地方!刚刚我们都玩的模态的,现在我们来玩玩非模态的,就是主窗口和父窗口可以同时进行操作.
UI设计:
在mainwindow.h中
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QStandardItemModel>
#include <QItemSelectionModel>
#include "dialogheader.h"
#include "dialoglocation.h"//定位单元格头文件QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();void setEnable(bool flag);void setCell(int row,int col,QString text);//设置主窗口的单元格信息private slots:void on_actionResize_triggered();void on_actionHeader_triggered();void on_actionLocation_triggered();private:Ui::MainWindow *ui;QStandardItemModel*model;QItemSelectionModel*selectionModel;DialogHeader*dialogHeader=NULL;DialogLocation*dialogLocation=NULL;//定位单元格
};
#endif // MAINWINDOW_H
在mainwindow.cpp中
void MainWindow::on_actionLocation_triggered()
{dialogLocation=new DialogLocation(this);//当关闭对话框时, 会自动的回收内存,就不用delete去删除了dialogLocation->setAttribute(Qt::WA_DeleteOnClose);//对话框一直在表面 参数为原有的属性加新的属性dialogLocation->setWindowFlags(dialogLocation->windowFlags()|Qt::WindowStaysOnTopHint);dialogLocation->setMaxRowCol(model->rowCount()-1,model->columnCount()-1);auto index=selectionModel->currentIndex();dialogLocation->setCurrenRowCol(index.row(),index.column());dialogLocation->show();//模态方式进行显示,点击按钮是不会关闭的,同时主窗口也可以继续操作
}
在dialoglocation.h中
#ifndef DIALOGLOCATION_H
#define DIALOGLOCATION_H#include <QDialog>namespace Ui {
class DialogLocation;
}class DialogLocation : public QDialog
{Q_OBJECTpublic:explicit DialogLocation(QWidget *parent = nullptr);~DialogLocation();void setMaxRowCol(int rowMax,int colMax);void setCurrenRowCol(int row,int col);
private:
//对话框关闭和打开时自动调用void closeEvent(QCloseEvent *event);void showEvent(QShowEvent*event);private slots:void on_pushButtonOk_clicked();void on_pushButtonCancel_clicked();private:Ui::DialogLocation *ui;
};#endif // DIALOGLOCATION_H
在dialogLocation.cpp中
#include "dialoglocation.h"
#include "ui_dialoglocation.h"
#include "mainwindow.h"DialogLocation::DialogLocation(QWidget *parent) :QDialog(parent),ui(new Ui::DialogLocation)
{ui->setupUi(this);
}DialogLocation::~DialogLocation()
{delete ui;
}void DialogLocation::setMaxRowCol(int rowMax, int colMax)
{ui->spinBoxRow->setMaximum(rowMax);ui->spinBoxCol->setMaximum(colMax);
}void DialogLocation::setCurrenRowCol(int row, int col)
{ui->spinBoxCol->setValue(col);ui->spinBoxRow->setValue(row);
}void DialogLocation::on_pushButtonOk_clicked()
{MainWindow*mainWindow=(MainWindow*)parentWidget();mainWindow->setCell(ui->spinBoxRow->value(),ui->spinBoxCol->value(),ui->lineEdit->text());if(ui->checkBoxCol->isChecked()){ui->spinBoxCol->setValue(ui->spinBoxCol->value()+1);}if(ui->checkBoxRow->isChecked()){ui->spinBoxRow->setValue(ui->spinBoxRow->value()+1);}
}void DialogLocation::on_pushButtonCancel_clicked()
{close();
}
void DialogLocation::closeEvent(QCloseEvent *event)
{MainWindow*mainWindow=(MainWindow*)parentWidget();mainWindow->setEnable(true);
}
void DialogLocation::showEvent(QShowEvent*event)
{MainWindow*mainWindow=(MainWindow*)parentWidget();mainWindow->setEnable(false);
}
运行结果:
确实类比较多,跳来跳去,不好截图,所以我就都截下来了,有不懂的可以问我.
五.总结
对于自定义的对话框,也是有模板套路可寻的,注意的是数据之间的交互,面向对象的思想!
确实我感觉我截的有点乱,来给你们一个我梳理的思维导图吧!
是不是很爱你呀!哈哈.
两岸猿声啼不住,轻舟已过万重山
相关文章:
【qt】自定义对话框
自定义对话框 一.自定义对话框的使用1.应用场景2.项目效果3.界面拖放4.模型和视图的设置5.action功能实现 二.自定义对话框的创建1.设置对话框界面2.创建对话框 三.对话框的功能与样式实现1.对话框数据的交换2.对话框的显示3.设置对话框的特性4.完成按钮的功能 四.编辑表头的对…...
汽车IVI中控开发入门及进阶(二十二):video decoder视频解码芯片
前言: 视频解码器在许多汽车、专业和消费视频应用中仍有需求。Analog Devices是模拟视频产品领域的行业领导者,提供一系列视频解码器,可将标准(SD,standard definition)和高清(HD,High definition)分辨率的模拟视频高质量转换为MIPI或TTL格式的数字视频数据。典型的应…...
混沌测试介绍
混沌测试介绍 1. 混沌测试简介 混沌测试(Chaos Engineering)是一种测试方法,通过在生产环境中故意引入故障,测试系统在异常情况下的表现,以提高系统的弹性和鲁棒性。其目标是确保系统能够在面对不可预见的事件或故障…...
python 单链表创建,遍历
# !/usr/bin/python3 # -*- coding:utf-8 -*- """ author: JHC000abcgmail.com file: 111.py time: 2024/05/30 21:37:09 desc:""" # 定义单链表结构 class ListNode:def __init__(self,value0,nextNone):self.value valueself.next nextdef _…...
【方法】如何取消PPT“以只读方式打开“?
以“只读方式”打开的PPT,可能会受到不同的限制,比如无法编辑修改内容,无法保存原文件等。那如何取消PPT的“只读方式”呢?不同形式的“只读方式”,取消方法不同,下面一起来看看吧! “只读方式”…...
ChatTTS,语气韵律媲美真人的开源TTS模型,文字转语音界的新魁首,对标微软Azure-tts
前两天 2noise 团队开源了ChatTTS项目,并且释出了相关的音色模型权重,效果确实非常惊艳,让人一听难忘,即使摆在微软的商业级项目Azure-tts面前,也是毫不逊色的。 ChatTTS是专门为对话场景设计的文本转语音模型&#x…...
Django企业招聘后台管理系统开发实战四
前言 首先我们看一下产品的需求背景,这个产品为了解决招聘面试的过程中,线下面试管理效率低,面试过程和结果不方便跟踪的痛点 招聘管理的系统几乎是每一家中小公司都需要的产品 我们以校园招聘的面试为例子来做 MVP 产品迭代 首先我们来看一下…...
APP上架 篇一:上架资质要求
文章目录 系列文章Apple Store商店上架App官方文档资质要求费用详情Google Play商店上架App官方文档资质要求费用详情华为应用商店上架App官方文档资质要求费用详情小米应用商店上架App官方文档资质要求...
C++入门之类和对象
目录 1.C相对于C语言的一些不同的小语法 1.1命名空间 1.2C输入&输出 1.3缺省参数 1.4函数重载 1.5引用 1.6内联函数 1.7auto 1.8nullptr 2.类的引入 2.1类的内部 2.2this指针 2.3类的默认成员函数 2.3.1构造函数 2.3.2析构函数 2.3.3拷贝构造 2.4运…...
html中table的替代方案
使用插件,2个功能强大的table插件 DataTables | Javascript table library 专门的table处理插件,下载时可以配置是否支持bootstrap和jquery ui等。参数众多。表格组件 table - Layui 文档 国内的插件,只支持jquery,配合默认的layu…...
单片机的自动化编程语言:深度探索与未来展望
单片机的自动化编程语言:深度探索与未来展望 单片机作为现代电子设备的核心控制单元,其自动化编程语言的发展与应用,对提升设备性能、简化编程流程具有重大意义。本文将从四个方面、五个方面、六个方面和七个方面,对单片机的自动…...
k8s 部署 Dashboard
Dashboard 是官方提供的一个UI,可用于基本管理K8s资源。 # 在master节点执行# wget \ https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml vi recommended.yaml 增加 nodePort: 30001 和 type: NodePort ...... spec:p…...
HTTP/超文本传输协议(Hypertext Transfer Protocol)及HTTP协议通信步骤介绍和请求、响应阶段详解;
目录 一、HTTP/超文本传输协议 特点和功能 请求-响应模型 版本和扩展 安全性和加密 二、HTTP协议通信步骤介绍 三、请求、响应阶段详解 HTTP请求 HTTP响应 示例 一、HTTP/超文本传输协议 HTTP/超文本传输协议(Hypertext Transfer Protocol)是…...
【机器学习】随机森林:深度解析与应用实践
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 随机森林:深度解析与应用实践引言1. 随机森林基础1.1 什么是随机森林…...
pytorch使用tensorboardX面板自动生成模型结构图和各类可视化图像
总结: 在原本代码中额外添加如下几行即可实现查看模型结构: from tensorboardX import SummaryWriter # 用于进行可视化# 1. 来用tensorflow进行可视化with SummaryWriter("./log", comment"sample_model_visualization") as sw: …...
C# 键值对
一、键值对的基本使用 1、增 Dictionary<int, decimal> dic new Dictionary<int, decimal>();//创建键值对,键的类型为int 值的类型为decimaldic.Add(1, 2.5m);dic.Add(2, 3.7m);dic.Add(3, 4.2m);//添加三组数据 2、删 ① 根据键值对中的键值删除某…...
android 应用安装目录
三方:data/app/ 系统应用:system/app/ 声明so压缩 android:extractNativeLibstrue如果lib没有so,可能是在base.apk,如果so不压缩,直接在base.apk运行时提取 https://www.cnblogs.com/xiaxveliang/p/14583802.html 若…...
Centos 7 安装刻录至硬件服务器
前言 在日常测试中,会遇到很多安装的场景,今天给大家讲一下centos 7 的安装,希望对大家有所帮助。 一.下载镜像 地址如下: centos官方镜像下载地址https://www.centos.org/download/ 按照需求依次点击下载 二.镜像刻录 镜像刻…...
动手学深度学习4.6 暂退法-笔记练习(PyTorch)
以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。 本节课程地址:丢弃法_哔哩哔哩_bilibili 本节教材地址:4.6. 暂退法(Dropout)…...
C++ 头文件优化
C 是一种灵活的语言,所以需要一种积极的方法来分析和减少编译时依赖。一种常见的达到这个目的的方法是,将依赖从头文件里转移到源代码文件里。实现这个目的的方法叫做提前声明。 简而言之,这些声明告诉编译器某个函数接受和返回哪些参数&…...
DataRockMan洛克先锋OZON选品工具
随着全球电子商务的飞速发展,跨境电商平台已成为越来越多企业和个人追逐市场红利的重要战场。在众多跨境电商平台中,OZON以其独特的市场定位和强大的用户基础,吸引了无数卖家的目光。然而,如何在OZON平台上成功选品,成…...
【MySQL精通之路】全文搜索(9)-全文解析器-MeCab
主博客: 【MySQL精通之路】全文搜索功能-CSDN博客 目录 1.介绍 2.安装MeCab Parser插件 3.创建使用MeCab分析器的FULLTEXT索引 4.MeCab Parser空间处理 5.MeCab分析程序停止字处理 6.MeCab Parser术语搜索 7.MeCab分析程序通配符搜索 8.MeCab语法分析器短语…...
【工具】 MyBatis Plus的SQL拦截器自动翻译替换“?“符号为真实数值
【工具】 MyBatis Plus的SQL拦截器自动翻译替换"?"符号为真实数值 使用MyBatis的配置如下所示: mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl调用接口,sql日志打印如下: 参数和sql语句不…...
RT-DETR:端到端的实时Transformer检测模型(目标检测+跟踪)
博主一直一来做的都是基于Transformer的目标检测领域,相较于基于卷积的目标检测方法,如YOLO等,其检测速度一直为人诟病。 终于,RT-DETR横空出世,在取得高精度的同时,检测速度也大幅提升。 那么RT-DETR是如…...
OrangePi Kunpeng Pro开发板初体验——家庭小型服务器
引言 在开源硬件的浪潮中,开发板作为创新的基石,正吸引着全球开发者的目光。它们不仅为技术爱好者提供了实验的平台,更为专业开发者带来了实现复杂项目的可能性。本文将深入剖析OrangePi Kunpeng Pro开发板,从开箱到实际应用&…...
AquaCrop农业水资源管理,模拟作物生长过程中水分的需求与消耗
AquaCrop是由世界粮食及农业组织(FAO)开发的一个先进模型,旨在研究和优化农作物的水分生产效率。这个模型在全球范围内被广泛应用于农业水管理,特别是在制定农作物灌溉计划和应对水资源限制方面显示出其强大的实用性。AquaCrop 不…...
爬虫之re数据清洗
文章目录 一、正则【Regular】二、重要语法1、获取内容: 左边(.*?)右边2、替换数据: re.sub(源数据|源数据, 目标数据, 字符串) 一、正则【Regular】 概念: 根据程序员的指示, 从<字符串>中提取数据 结果: 列表 使用频率: 正则跟xpath相比, 正则是弟弟 二、重要语法 …...
惯性动作捕捉与数字人实时交互/运营套装,对高校元宇宙实训室有何作用?
惯性动作捕捉与数字人实时交互/运营套装,可以打破时空限制,通过动捕设备写实数字人软件系统动捕设备系统定制化数字人短视频渲染平台,重塑课程教学方式,开展元宇宙沉浸式体验教学活动和参观交流活动。 写实数字人软件系统内置丰富…...
Leecode---栈---每日温度 / 最小栈及栈和队列的相互实现
栈:先入后出;队列:先入先出 一、每日温度 Leecode—739题目: 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温…...
Linux系统编程——动静态库
目录 一,关于动静态库 1.1 什么是库? 1.2 认识动静态库 1.3 动静态库特征 二,静态库 2.1 制作静态库 2.2 使用静态库 三,动态库 3.1 制作动态库 3.2 使用动态库一些问题 3.3 正确使用动态库三种方法 3.3.1 方法一&…...
json formatter哪个好用
在众多的JSON Formatter工具中,确实有几个相当出色的选择,它们各自拥有独特的特点和优势,可以满足不同用户群体的需求。下面就来为大家推荐几个好用的JSONFormatter工具: 1. JSON Formatter & Validator:这款工具…...
react的hooks是什么意思
React Hooks 是 React 16.8 版本引入的一个新特性,它允许你在不编写类组件的情况下使用状态和其他React特性。Hooks使得函数组件变得更加灵活和强大,因为你可以在其中添加状态逻辑、生命周期方法以及其他React功能。 在传统的React类组件中,…...
AVFrame相关接口(函数)
分配和释放 分配 AVFrame AVFrame *av_frame_alloc(void); 分配一个新的 AVFrame 并返回一个指向它的指针。返回的 AVFrame 需要手动释放。 释放 AVFrame void av_frame_free(AVFrame **frame); 释放由 av_frame_alloc 分配的 AVFrame。这个函数会释放帧的数据并将指针设为 …...
低代码与人工智能的深度融合:行业应用的广泛前景
引言 在当今快速变化的数字化时代,企业面临着越来越多的挑战和机遇。低代码平台和人工智能技术的兴起,为企业提供了新的解决方案,加速了应用开发和智能化转型的步伐。 低代码平台的基本概念及发展背景 低代码平台是一种软件开发方法&#x…...
嵌入式测试基础知识
1.白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。 2.黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。 3.软件测试流程:根据测试需求编写测试计划、方案,测试用例,做测试分析&#…...
基于网关的ip频繁访问web限制
一、前言 外部ip对某一个web进行频繁访问,有可能是对web进行攻击,现在提供一种基于网关的ip频繁访问web限制策略,犹如带刀侍卫,审查异常身份人员。如发现异常或者暴力闯关者,即可进行识别管制。 二、基于网关的ip频繁访…...
GSM信令流程(附着、去附着、PDP激活、修改流程)
1、联合附着流程 附着包括身份认证、鉴权等 2、去附着流程 用户发起去附着 SGSN发起去附着 HLR发起去附着 GSSN使用S4发起去附着 3、Activation Procedures(PDP激活流程) 4、PDP更新或修改流程 5、Deactivate PDP Context 6、RAU(Routeing Area Update)流程 7、鉴权加…...
OAK相机如何将 YOLOv10 模型转换成 blob 格式?
编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 Hello,大家好,这里是OAK中国,我是Ashely。 专…...
【Python】解决Python报错:AttributeError: ‘class‘ object has no attribute ‘xxx‘
🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…...
反思 GTC 和 OFC 2024:没有一刀切的方法,但上市时间是关键!
在GTC 2024期间,英伟达宣布了最新的Blackwell B200张量核心GPU,旨在为万亿参数的AI大型语言模型提供支持。Blackwell B200需要先进的800Gbps网络,完全符合在AI工作负载的AI网络报告中概述的预测。随着人工智能工作负载的流量预计每两年增长10…...
速盾:bgp 静态 cdn
BGP(边界网关协议)是一种用于在互联网中交换路由信息的协议,它允许不同自治系统(AS)之间的路由器进行通信和交换路由信息。CDN(内容分发网络)是一种通过将内容分散放置在全球各地的服务器上&…...
union all 以及标量子查询执行计划
SELECT 1, (SELECT ID1 FROM TE WHERE IDA.ID2) FROM .TA A WHERE COLA X UNION ALL SELECT 1, (SELECT ID2 FROM TD WHERE IDA.ID1) FROM .TB A WHERE COLA X UNION ALL SELECT 1,COL2 AS PARENT_UUID FROM .TC a WHERE COLA X 三个union all 看着像是5个table joi…...
上位机图像处理和嵌入式模块部署(f103 mcu和Qt上位机联动)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 之前我们写过一篇文章,上面说的是如何利用串口对mcu进行控制,即如果利用串口实现mcu led灯的点亮和熄灭。输入1的时候&…...
TiKV学习5:TiDB SQL执行流程
目录 1. DML语句读流程概要 2. DML语句写流程概要 3. DDL 流程概要 4. SQL的Parse和Compile 5. 读取的执行 6. 写入的执行 7. DDL的执行 8. 小结 1. DML语句读流程概要 TiDB Server接收sql并处理,TiKV负责持久化数据,PD提供TSO和Region的数据字典…...
Unity 自定义编辑器根据枚举值显示变量
public class Test : MonoBehaviour {[HideInInspector][Header("数量")][SerializeField]public int num;[Header("分布类型")][SerializeField]public DistributionType distType;[HideInInspector][Header("位置")][SerializeField]public Li…...
linux下 搭建Llama3
安装软件: Ollama,官方网站:https://ollama.com/ 可以再下载win、mac和linux版本 linux安装命令为:curl -fsSL https://ollama.com/install.sh | sh 由于我的机器是linux不联网机器,网上没找到下载离线方式,…...
【蓝桥杯——物联网设计与开发】拓展模块2 - 电位器模块
一、电位器模块 (1)资源介绍 🔅原理图 蓝桥杯物联网竞赛实训平台提供了一个拓展接口 CN2,所有拓展模块均可直接安装在 Lora 终端上使用; 图1 拓展接口 电位器模块电路原理图如下所示: 图2 …...
Jtti:租用的php服务器运行异常是什么原因导致的?
PHP服务器运行异常可能由多种原因引起。以下是一些常见问题及其相应的解决方案: 1. 服务器资源不足 原因: CPU、内存或磁盘空间不足,导致服务器性能下降。 解决方案: 检查系统资源:使用以下命令检查CPU、内存和磁盘使用…...
恒创科技:无法与服务器建立安全连接怎么解决?
在使用互联网服务时,有时会出现无法与服务器建立安全连接的问题,此错误消息通常出现在尝试访问需要安全连接的网站(例如使用 HTTPS 的网站)时,这可能是由于多种原因造成的,以下是一些常见的解决方法,帮助你解决问题。 …...
【面试】介绍一下HotSpot虚拟机
目录 1. 说明2. 起源与发展3. 技术特点3.1 热点代码探测技术3.2 内存管理3.3 垃圾收集器3.4 并发和多线程支持3.5 指令重排优化 4. 执行模式与性能 1. 说明 1.HotSpot虚拟机是一款由Oracle JDK和OpenJDK广泛使用的Java虚拟机(JVM)。2.HotSpot虚拟机凭借…...