Linux 图形化编程GTK3.0 快速入门之布局

news2024/11/20 17:37:55

GTK3.0 布局之水平布局

核心语法:

水平布局容器:

水平布局容器的创建:
GtkWidget *gtk_hbox_new( gboolean homogeneous,  gint spacing );

homogeneous:容器内控件是否大小一致( gboolean 取值为TRUE 或 FALSE )
spacing:控件之间的间隔( 以像素点为单位 ),gint相当于 C语言的int
返回值:水平布局控件指针


容器添加添加控件:
void gtk_container_add(GtkContainer *container, GtkWidget *widget);

container:容纳控件的容器
widget:要添加的控件


显示容器上所有控件
void gtk_widget_show_all(GtkWidget *widget);
widget:需要显示的控件

功能源码:

#include<stdio.h>
#include<gtk-3.0/gtk/gtk.h>

/**
 * 基于初始化图形库
 * 添加相关功能: 水平布局 
 * 
 * 细节要求:为水平布局添加二个Button 按钮
 * 
 * 
 * 
 */


static void print_hello(GtkWidget *widget, gpointer data) {
    g_print("Hello World\n");
}

int main(int argc, char *argv[]) {
    GtkWidget *window;
    GtkWidget *button;
    
    gtk_init(&argc, &argv); // gtk 初始化
    
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL); // gtk 窗口实例化
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //window 窗口绑定销毁事件,并触发gtk_main_quite 函数
    
    // gkt 水平布局组件初始化化
    GtkWidget *hbox = gtk_hbox_new(TRUE, 10);

    // 声明button1 组件
    GtkWidget *button1 = gtk_button_new_with_label("按钮一"); //  gtk Button 实例化
    g_signal_connect(button1, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button2 组件
    GtkWidget *button2 = gtk_button_new_with_label("按钮二"); //  gtk Button 实例化
    g_signal_connect(button2, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 水平布局添加Button  组件
    gtk_container_add(GTK_CONTAINER(hbox), button1);
    gtk_container_add(GTK_CONTAINER(hbox), button2);

    // 把水平布局容器添加到窗口
	gtk_container_add(GTK_CONTAINER(window), hbox); 
    gtk_widget_show_all(window); // 显示windows 窗口包含的所有gtk 组件
    
    gtk_main(); //gtk 主事件循环开启
    
    return 0;
}

效果截图:

GTK3.0 布局之垂直布局

核心语法:

垂直布局容器的创建:
GtkWidget *gtk_vbox_new( gboolean homogeneous,  gint spacing );

功能源码:

#include<stdio.h>
#include<gtk-3.0/gtk/gtk.h>

/**
 * 基于初始化图形库
 * 添加相关功能: 垂直布局 
 * 
 * 细节要求:为垂直布局添加二个Button 按钮
 * 
 * 
 * 
 */


static void print_hello(GtkWidget *widget, gpointer data) {
    g_print("Hello World\n");
}

int main(int argc, char *argv[]) {
    GtkWidget *window;
    GtkWidget *button;
    
    gtk_init(&argc, &argv); // gtk 初始化
    
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL); // gtk 窗口实例化
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //window 窗口绑定销毁事件,并触发gtk_main_quite 函数
    
    // gkt 垂直布局组件初始化化
    GtkWidget *vbox = gtk_vbox_new(TRUE, 10);

    // 声明button1 组件
    GtkWidget *button1 = gtk_button_new_with_label("按钮一"); //  gtk Button 实例化
    g_signal_connect(button1, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button2 组件
    GtkWidget *button2 = gtk_button_new_with_label("按钮二"); //  gtk Button 实例化
    g_signal_connect(button2, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 水平布局添加Button  组件
    gtk_container_add(GTK_CONTAINER(vbox), button1);
    gtk_container_add(GTK_CONTAINER(vbox), button2);

    // 把水平布局容器添加到窗口
	gtk_container_add(GTK_CONTAINER(window), vbox); 
    gtk_widget_show_all(window); // 显示windows 窗口包含的所有gtk 组件
    
    gtk_main(); //gtk 主事件循环开启
    
    return 0;
}

效果截图:

GTK3.0 布局之表格布局

核心语法:

表格布局容器的创建:
GtkWidget *gtk_table_new( guint rows, guint columns, gboolean homogeneous );

rows: 行数
coumns: 列数
homogeneous:容器内表格的大小是否相等
返回值:表格布局容器指针

布局容器添加控件:
void gtk_table_attach_defaults(GtkTable *table, GtkWidget *widget,guint left_attach,guint right_attach,guint top_attach,guint bottom_attach );

table:  容纳控件的容器 
widget: 要添加的控件

功能源码:

#include<stdio.h>
#include<gtk-3.0/gtk/gtk.h>

/**
 * 基于初始化图形库
 * 添加相关功能: 表格布局
 * 
 * 细节要求:为表格布局第一行添加二个Button 按钮
 *         为表格布局第一行添加一个Button 按钮
 * 
 * 
 * 
 */


static void print_hello(GtkWidget *widget, gpointer data) {
    g_print("Hello World\n");
}

int main(int argc, char *argv[]) {
    GtkWidget *window;
    GtkWidget *button;
    
    gtk_init(&argc, &argv); // gtk 初始化
    
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL); // gtk 窗口实例化
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //window 窗口绑定销毁事件,并触发gtk_main_quite 函数

     // gkt 表格布局组件初始化化
    GtkWidget *table = gtk_table_new(2, 2, TRUE); 
   
  

    // 声明button1 组件
    GtkWidget *button1 = gtk_button_new_with_label("按钮一"); //  gtk Button 实例化
    g_signal_connect(button1, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button2 组件
    GtkWidget *button2 = gtk_button_new_with_label("按钮二"); //  gtk Button 实例化
    g_signal_connect(button2, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

        // 声明button3 组件
    GtkWidget *button3 = gtk_button_new_with_label("按钮一"); //  gtk Button 实例化
    g_signal_connect(button3, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    
    // 表格布局添加Button  组件
    gtk_table_attach_defaults(GTK_TABLE(table), button1, 0, 1, 0, 1);
    gtk_table_attach_defaults(GTK_TABLE(table), button2, 1, 2, 0, 1);
    gtk_table_attach_defaults(GTK_TABLE(table), button3, 0, 2, 1, 2);


    // 把表格布局容器添加到窗口
	gtk_container_add(GTK_CONTAINER(window), table); 

    gtk_widget_show_all(window); // 显示windows 窗口包含的所有gtk 组件
    
    gtk_main(); //gtk 主事件循环开启
    
    return 0;
}

效果截图:

GTK3.0 布局之固定布局

核心语法:

固定布局的创建:
GtkWidget *gtk_fixed_new(void);
返回值:固定布局容器指针


固定布局容器添加控件:
void gtk_fixed_put( GtkFixed *fixed,GtkWidget *widget,gint x,gint y );

fixed:容纳控件的容器
widget:要添加的控件

x, y:控件摆放位置的起点坐标,如下图:

设置控件的大小( 宽和高 ):
void gtk_widget_set_size_request(GtkWidget *widget,gint width,gint height );

widget:需要设置的控件
width:宽度
height:高度


移动固定布局里控件的位置:
void gtk_fixed_move(   GtkFixed *fixed,GtkWidget *widget,gint x,gint y);

fixed:固定布局容器
widget:需要移动的控件
x, y: 移动的位置

功能源码:

#include<stdio.h>
#include<gtk-3.0/gtk/gtk.h>

/**
 * 基于初始化图形库
 * 添加相关功能: 固定布局
 * 
 * 细节要求:为固定布局左上角添加二个Button 按钮, 距离窗口(5, 10)
 *         为固定布局右下角添加一个Button 按钮, 距离窗口(200, 200)
 * 
 * 
 * 
 */


static void print_hello(GtkWidget *widget, gpointer data) {
    g_print("Hello World\n");
}

int main(int argc, char *argv[]) {
    GtkWidget *window;
    
    gtk_init(&argc, &argv); // gtk 初始化
    
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL); // gtk 窗口实例化
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //window 窗口绑定销毁事件,并触发gtk_main_quite 函数

     // gkt 固定布局组件初始化化
    GtkWidget *fix = gtk_fixed_new(); 
   
  

    // 声明button1 组件
    GtkWidget *button1 = gtk_button_new_with_label("左上角"); //  gtk Button 实例化
    g_signal_connect(button1, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button2 组件
    GtkWidget *button2 = gtk_button_new_with_label("右下角"); //  gtk Button 实例化
    g_signal_connect(button2, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    
    // 固定布局添加Button  组件
    gtk_fixed_put(GTK_FIXED(fix), button1, 5, 10);
     gtk_fixed_put(GTK_FIXED(fix), button2, 200, 200);


    // 把表格布局容器添加到窗口
	gtk_container_add(GTK_CONTAINER(window), fix); 

    gtk_widget_show_all(window); // 显示windows 窗口包含的所有gtk 组件
    
    gtk_main(); //gtk 主事件循环开启
    
    return 0;
}

效果截图:

GTK3.0 布局实战之计算器

功能源码:

#include<stdio.h>
#include<gtk-3.0/gtk/gtk.h>

/**
 * 基于初始化图形库
 * 添加相关功能: 通过表格布局,实现计算器布局
 * 
 * 细节要求: 基于windows 11 系统计算器实现布局.
 *         
 * 
 * 
 * 
 */

static void print_hello(GtkWidget *widget, gpointer data) {
    g_print("Hello World\n");
}


int main(int argc, char *argv[])
{
     GtkWidget *window;
    
    gtk_init(&argc, &argv); // gtk 初始化
    
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL); // gtk 窗口实例化
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //window 窗口绑定销毁事件,并触发gtk_main_quite 函数

     // gkt 表格布局组件初始化化
    GtkWidget *table = gtk_table_new(2, 2, TRUE); ; 
   
   // 行编辑的操作
	GtkWidget *entry = gtk_entry_new();		// 行编辑的创建
	gtk_entry_set_text(GTK_ENTRY(entry), NULL);	// 给行编辑设置内容
	gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE);// 设置行编辑不允许编辑,只做显示用

    // 声明button1 组件
    GtkWidget *button1 = gtk_button_new_with_label("1"); //  gtk Button 实例化
    g_signal_connect(button1, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button2 组件
    GtkWidget *button2 = gtk_button_new_with_label("2"); //  gtk Button 实例化
    g_signal_connect(button2, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button3 组件
    GtkWidget *button3 = gtk_button_new_with_label("3"); //  gtk Button 实例化
    g_signal_connect(button3, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button4 组件
    GtkWidget *button4 = gtk_button_new_with_label("+"); //  gtk Button 实例化
    g_signal_connect(button4, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数


    // 声明button5 组件
    GtkWidget *button5 = gtk_button_new_with_label("4"); //  gtk Button 实例化
    g_signal_connect(button5, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button6 组件
    GtkWidget *button6 = gtk_button_new_with_label("5"); //  gtk Button 实例化
    g_signal_connect(button6, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button7 组件
    GtkWidget *button7 = gtk_button_new_with_label("6"); //  gtk Button 实例化
    g_signal_connect(button7, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button8 组件
    GtkWidget *button8 = gtk_button_new_with_label("-"); //  gtk Button 实例化
    g_signal_connect(button8, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数


    // 声明button9 组件
    GtkWidget *button9 = gtk_button_new_with_label("7"); //  gtk Button 实例化
    g_signal_connect(button9, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button10 组件
    GtkWidget *button10 = gtk_button_new_with_label("8"); //  gtk Button 实例化
    g_signal_connect(button10, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button11 组件
    GtkWidget *button11 = gtk_button_new_with_label("9"); //  gtk Button 实例化
    g_signal_connect(button11, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button12 组件
    GtkWidget *button12 = gtk_button_new_with_label("*"); //  gtk Button 实例化
    g_signal_connect(button12, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    
    // 声明button13 组件
    GtkWidget *button13 = gtk_button_new_with_label("0"); //  gtk Button 实例化
    g_signal_connect(button13, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

      // 声明button14 组件
    GtkWidget *button14 = gtk_button_new_with_label("C"); //  gtk Button 实例化
    g_signal_connect(button14, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button15 组件
    GtkWidget *button15 = gtk_button_new_with_label("="); //  gtk Button 实例化
    g_signal_connect(button15, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 声明button12 组件
    GtkWidget *button16 = gtk_button_new_with_label("/"); //  gtk Button 实例化
    g_signal_connect(button16, "clicked", G_CALLBACK(print_hello), NULL); // gtk Button 绑定cliend 事件并触发绑定函数

    // 表格布局添加Button  组件
    gtk_table_attach_defaults(GTK_TABLE(table), entry,  0, 4, 0, 1);
    // 表格布局添加Button  组件
    gtk_table_attach_defaults(GTK_TABLE(table), button1, 0, 1, 1, 2);
    gtk_table_attach_defaults(GTK_TABLE(table), button2, 1, 2, 1, 2);
    gtk_table_attach_defaults(GTK_TABLE(table), button3, 2, 3, 1, 2);
    gtk_table_attach_defaults(GTK_TABLE(table), button4, 3, 4, 1, 2);
    
    gtk_table_attach_defaults(GTK_TABLE(table), button5, 0, 1, 2, 3);
    gtk_table_attach_defaults(GTK_TABLE(table), button6, 1, 2, 2, 3);
    gtk_table_attach_defaults(GTK_TABLE(table), button7, 2, 3, 2, 3);
    gtk_table_attach_defaults(GTK_TABLE(table), button8, 3, 4, 2, 3);

    gtk_table_attach_defaults(GTK_TABLE(table), button9,  0, 1, 3, 4);
    gtk_table_attach_defaults(GTK_TABLE(table), button10, 1, 2, 3, 4);
    gtk_table_attach_defaults(GTK_TABLE(table), button11, 2, 3, 3, 4);
    gtk_table_attach_defaults(GTK_TABLE(table), button12, 3, 4, 3, 4);


    gtk_table_attach_defaults(GTK_TABLE(table), button13,  0, 1, 4, 5);
    gtk_table_attach_defaults(GTK_TABLE(table), button14, 1, 2, 4, 5);
    gtk_table_attach_defaults(GTK_TABLE(table), button15, 2, 3, 4, 5);
    gtk_table_attach_defaults(GTK_TABLE(table), button16, 3, 4, 4, 5);




    // 把表格布局容器添加到窗口
	gtk_container_add(GTK_CONTAINER(window), table); 

    gtk_widget_show_all(window); // 显示windows 窗口包含的所有gtk 组件
    
    gtk_main(); //gtk 主事件循环开启
    
    return 0;
}

效果截图:

GTK 官方文档和Demo 安装和查看 

1、安装GTK3.0 官方文档,请执行如下指令

sudo apt-get install devhelp

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

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

相关文章

什么是数字化,什么是数智化?数字化与数智化的区别和联系

什么是数字化&#xff1f;什么是数智化&#xff1f;以及数字化与数智化的区别&#xff0c;下面分为三块跟大家详细讲解。 一、什么是数字化&#xff1f; 1、概念&#xff1a; 数字化&#xff08;Digitalization&#xff09;是将信息转换为数字&#xff08;即计算机可读&#…

操作系统之如何使用C语言完成SFJ和SRTJ,并完成他的甘特图

目录 前言 SFJ SRTJ 结束语 前言 不知不觉已经写博客一个月了&#xff0c;前段时间因为学业上的一些原因咕咕咕了&#xff0c;今天我又回来了。今天我给大家带来的是C语言代码完成的SFJ和SRTJ&#xff0c;并且带大家描述他的甘特图。如果有对SFJ和SRTJ不了解的小伙伴可以翻…

windows anaconda 安装 Labelme

安装 # 创建环境 conda create -n labelme python3.6 #激活环境 conda activate labelme # 安装依赖 conda install pyqt conda install pillow # 安装labelme conda install labelme3.16.2 # 启动labelme labelme右键选择标注类型&#xff0c;从上到下为多边形&#xff08;常…

超声波清洗机哪个牌子好用点?四大卓越臻品不容错过!

选购超声波清洗机能为日常生活提供非常多的便利&#xff01;比如像是戴眼镜或者是有婴儿的家庭&#xff0c;使用超声波清洗机不仅能够帮助清洗需要清洗的物品&#xff0c;同时更能保证物品健康清洁&#xff0c;对清洗的物品进行杀菌灭菌&#xff01;相对于比较费时间并且容易损…

eclipse宝刀未老

Theia 是一个高度可定制的、开源的、基于 Web 的集成开发环境&#xff08;IDE&#xff09;框架。它由 Eclipse Foundation 主导&#xff0c;旨在为云和本地环境提供现代化的、全功能的 IDE 解决方案。Theia 的核心目标是提供一个灵活的平台&#xff0c;开发者可以根据自己的需求…

2005-2022年款福特福克斯维修手册和电路图线路图接线图资料更新

经过整理&#xff0c;2005-2022年款福特福克斯全系列已经更新至汽修帮手资料库内&#xff0c;覆盖市面上99%车型&#xff0c;包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对…

MaxWell实时监控Mysql并把数据写入到Kafka主题中

配置mysql 启用MySQL Binlog MySQL服务器的Binlog默认是未开启的&#xff0c;如需进行同步&#xff0c;需要先进行开启 修改MySQL配置文件/etc/my.cnf sudo vim/etc/my.cof 增加如下配置 注&#xff1a;MySQL Binlog模式 Statement-based&#xff1a;基于语句&#xff0c;…

定制化物联网设备:开启智能生活新篇章

随着科技的进步&#xff0c;物联网&#xff08;IoT&#xff09;已成为我们日常生活和工作中不可或缺的一部分。从智能家居到工业自动化&#xff0c;物联网设备以其独特的功能和特性&#xff0c;极大地提高了我们的生活质量和工作效率。然而&#xff0c;在众多的物联网设备中&am…

【深度解析】1688货源拿货价比拼多多贵?为何商家仍选1688

对电商卖家来说&#xff0c;首先需要解决的问题就是货源。 虽然知道1688是个大型综合性的货源平台&#xff0c;但很多卖家还是觉得1688上面的货源很贵&#xff0c;甚至在平台严查无货源的背景下&#xff0c;还是坚持从1688拿货。那么为什么有些拼多多的商品会比1688还便宜呢&a…

基于大型语言模型的全双工语音对话方案

摘要解读 我们提出了一种能够以全双工方式运行的生成性对话系统&#xff0c;实现了无缝互动。该系统基于一个精心调整的大型语言模型&#xff08;LLM&#xff09;&#xff0c;使其能够感知模块、运动功能模块以及一个具有两种状态&#xff08;称为神经有限状态机&#xff0c;n…

Linux系统编程——进程信号

目录 一&#xff0c;信号预备 1.1 生活中的信号 1.2 技术应用中的信号 1.3 signal函数捕捉信号 1.3 信号的发送与记录 1.4 信号的常见处理方式 二&#xff0c;信号的产生 2.1 核心转储 2.1.1 环境配置 2.1.2 利用core文件进行调试 2.1.3 core dump标志 2.2 通过系统…

【Python机器学习实战】 | 基于空气质量监测数据,采用多层神经网络预测PM2.5浓度

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

【漏洞复现】海康威视 综合安防管理平台软件 center_api_files 任意文件上传漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

Navicat 重装 查找 保存的查询sql文件

背景&#xff1a;Navicat 一个收费的软件&#xff0c;存在的最大缺点就是收费&#xff0c;所以我们为了优化它会遇到卸载重装这些复杂的过程&#xff0c;但是我们保存的查询sql会跟随卸载Navicat而删除&#xff0c;为了节省时间省去不必要的麻烦&#xff0c;我们可以查到我们保…

YOLOv10改进 | 注意力篇 | YOLOv10引入HAttention(HAT)注意力

1. HAT介绍 1.1 摘要:基于 Transformer 的方法在低级视觉任务(例如图像超分辨率)中表现出了令人印象深刻的性能。 然而,我们发现这些网络通过归因分析只能利用有限的输入信息空间范围。 这意味着 Transformer 的潜力在现有网络中仍未得到充分发挥。 为了激活更多的输入像素…

通过阿里云OOS定时升级Redis实例临时带宽

功能背景 在数据驱动的现代业务环境中&#xff0c;Redis以其卓越的性能和灵活性&#xff0c;已成为众多企业关键基础设施的重要组成部分。Redis广泛应用于处理缓存、会话管理、消息队列等多种数据密集型和响应敏感型的场景&#xff0c;对业务连续性和用户体验贡献极大。然而&a…

从入门到实战,一篇学会TS,保姆式教程

本文知识图谱分基础、进阶和实战三个部分&#xff0c;分别如下&#xff1a; image.png image.png image.png 这三份知识图谱里罗列的知识看似很多&#xff0c;实际上除了进阶部分的泛型、高级类型&#xff08;二&#xff09;和实战部分需要稍微费点脑细胞外&#xff0c;其他…

AlmaLinux 更换CN镜像地址

官方镜像列表 官方列表&#xff1a;https://mirrors.almalinux.org/CN 开头的站点&#xff0c;不同区域查询即可 一键更改镜像地址脚本 以下是更改从默认更改到阿里云地址 cat <<EOF>>/AlmaLinux_Update_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author:…

上位机图像处理和嵌入式模块部署(h750 mcu和usb虚拟串口)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于mcu usb而言&#xff0c;大部分情况下&#xff0c;它和上位机之间的关系都是device的关系。一般usb&#xff0c;可以分成host和device。如果mc…

windows如何运行wgcloud-agent-release

只需要右击wgcloud-agent-release.exe&#xff0c;用管理员身份&#xff0c;启动就好啦 你也可以双击regAgentService.bat&#xff0c;将agent注册为系统服务&#xff0c;然后在系统服务里面启动wgcloud-agent-release服务&#xff0c;这样可以隐藏运行窗口&#xff0c;也可以…