Qt学习记录(C++)——Day 2

目录

一、作业

要求:

实现:

1.创建新的窗口类

2. 主窗口中实现

二、 窗口菜单设计

效果展示图 

 三、图片资源的导入

步骤:

举例:

四、 对话框

1.模拟对话框

2. 非模态对话框

3.错误对话框

4.信息对话框

5.提问对话框

 6.警告对话框

7. 其他标准对话框

7.1颜色对话框(获取颜色RGB值)

7.2文件对话框(过滤)

7.3 字体对话框

五、创建简单登录界面 

 六、控件

效果展示图

源码:

推荐看视频(两个):

七、树控件(TreeWidget)

效果展示图

具体代码:

源码:

 八、表格控件(TableWidget)

效果展示图

具体代码

 源码:

九、其他常用控件

效果展示图

具体代码:

 源码:

视频:


一、作业

要求:

设计一个窗口,窗口内有一名为open的按钮。点击open按钮,重新生成一个新窗口,并且open按钮名变为close,此时再点击按钮新窗口关闭,原先窗口保持不变。

实现:

1.创建新的窗口类

my_liuwindow.h

#ifndef MY_LIUWINDOW_H
#define MY_LIUWINDOW_H
#include <QMainWindow>
class My_liuWindow: public QMainWindow
{
    Q_OBJECT;
public:
    My_liuWindow(QWidget *parent = nullptr);
    ~My_liuWindow();
};

#endif // MY_LIUWINDOW_H

my_liuwindow.cpp

#include "my_liuwindow.h"
#include<QPushButton>
My_liuWindow::My_liuWindow(QWidget *parent):QMainWindow(parent)
{
    setWindowTitle("My Custom Window");
    this->resize(600,600);
    QPushButton *btn = new QPushButton();
    btn->resize(100,50);

    btn->setParent(this);//设置按钮的父部件为当前窗口部件
    btn->show();//show以顶层方式弹出窗口控件
    btn->setText("关闭");
}
My_liuWindow::~My_liuWindow()
{

}

2. 主窗口中实现

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "my_liuwindow.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    this->resize(600,600);//设置主窗口大小
    QPushButton *btn = new QPushButton();//创建新按钮
    btn->resize(100,50);//设置按钮大小
    btn->setParent(this);//设置按钮的父部件为当前窗口部件
    btn->show();//show以顶层方式弹出窗口控件
    btn->setText("Open");//按钮命名
    connect(btn,&QPushButton::clicked,this,&MainWindow::Openliuwindow);
    //做信号和槽的连接
}

void MainWindow:: Openliuwindow()
{
    My_liuWindow *SecondWindow = new My_liuWindow(this);//创建新窗口指针
    SecondWindow->move(100,100);//移动新窗口显示位置,避免遮挡旧窗口
    SecondWindow->show();//显示新窗口
    QPushButton *btn = qobject_cast<QPushButton *>(sender());
    //用于在槽函数中处理多个按钮或其他类型的信号源,
    //以便能够区分是哪一个按钮或对象触发了槽函数。
    btn->setText("close");//改名
    disconnect(btn,&QPushButton::clicked,this,&MainWindow::Openliuwindow);
    //断开原有的连接
    connect(btn,&QPushButton::clicked,this,[=](){
    //创立新连接
        SecondWindow->close();
    });
}

源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/03MyWindow

二、 窗口菜单设计

#include "mainwindow.h"
#include<QMenuBar>
#include<QToolBar>
#include<QPushButton>
#include<QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(600,400);

    //菜单栏最多只能有一个
    //菜单创建
    QMenuBar *bar = menuBar();
    //将菜单栏放入窗口中
    setMenuBar(bar);

    //创建菜单
    QMenu *fileMenu = bar->addMenu("文件");
    QMenu *editMenu = bar->addMenu("编辑");

    //创建菜单项目
    QAction * newAction = fileMenu->addAction("新建");
    //添加分割线
    fileMenu->addSeparator();
    QAction * openAction = fileMenu->addAction("打开");

    //工具栏可以有多个
    QToolBar * toolBar = new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea,toolBar);

    //后期设置 只允许 左右停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
    //设置浮动
    toolBar->setFloatable(false);
    //设置移动(总开关)
    toolBar->setMovable(true);
    //工具栏中可以设置内容
    toolBar->addAction(newAction);
    //添加分割线
    toolBar->addSeparator();
    toolBar->addAction(openAction);
    //工具栏中添加控件
    QPushButton * btn = new QPushButton("a",this);
    toolBar->addWidget(btn);

    //状态栏最多有一个
    QStatusBar * stBar = statusBar();
    //设置到窗口中
    setStatusBar(stBar);
    //放标签控件
    QLabel * label = new QLabel("提示信息",this);
    stBar->addWidget(label);

    QLabel * label2 = new QLabel("右侧提示信息",this);
    stBar->addPermanentWidget(label2);

    //铆接部件 (浮动窗口) 可以有多个
    QDockWidget * dockWidget = new QDockWidget("浮动",this);
    addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
    //设置后期停靠区域,只允许上下
    dockWidget->setAllowedAreas( Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea );

    //设置中心部件 只能一个
    QTextEdit * edit = new QTextEdit(this);
    setCentralWidget(edit);
}

MainWindow::~MainWindow()
{
}

效果展示图 

源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/04MainWindow

 三、图片资源的导入

步骤:

1.将存放图片的文件夹复制到项目文件夹中

2.右击项目,新建文件,选择Qt->Qt Resource File,命名。

3.新建成功,显示该页面

4.点击Add Prefix,添加文件前缀名

5.点击Add Files,找到刚才放入项目中的图片文件夹,选中全部图片加入即可。

举例:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //ui->actionnew->setIcon(QIcon("D:/word/功课/Qt学习/anniu/1.png"));

    //添加Qt资源  “ : + 前缀名 + 文件名 ”
    ui->actionnew->setIcon(QIcon(":/new/anniu/1.png"));
    ui->actionopen->setIcon(QIcon(":/new/anniu/2.png"));
}

MainWindow::~MainWindow()
{
    delete ui;
}

很明显,在UI界面创建的新建和打开以及被图片替换掉了。 

源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/05_QtSource

四、 对话框

1.模拟对话框

(不可以对其他窗口进行操作)

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
#include <QDebug>
#include <QMessageBox>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //点击新建按钮 弹出一个对话框
       connect(ui->actionnew,&QAction::triggered,[=](){
           //对话框 分类
           //模态对话框 (不可以对其他窗口进行操作)
           //模态创建 阻塞
           QDialog dlg(this);
           dlg.resize(200,100);
           dlg.exec();

           qDebug() << "模态对话框弹出了";
               });
}

2. 非模态对话框

(可以对其他窗口进行操作)

             //非模态对话框
             QDialog * dlg2 = new QDialog (this);
             dlg2->resize(200,100);
             dlg2->show();
             dlg2->setAttribute(Qt::WA_DeleteOnClose); //55号 属性
             qDebug() << "非模态对话框弹出了";

3.错误对话框

           QMessageBox::critical(this,"critical","错误");

4.信息对话框

           QMessageBox::information(this,"info","信息");

 

5.提问对话框

           //提问对话框
           //参数1  父亲  参数2  标题  参数3  提示内容  参数4 按键类型  参数5 默认关联回车按键
           if (QMessageBox::Save  ==  QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
           {
               qDebug() << "选择的是保存";

           }
           else
           {
               qDebug() << "选择的是取消";
           }

 6.警告对话框

           QMessageBox::warning(this,"warning","警告");

7. 其他标准对话框

7.1颜色对话框(获取颜色RGB值)

           //颜色对话框
           QColor color =  QColorDialog::getColor(QColor(255,0,0));
           qDebug() << "r = " << color.red() 
                    << " g = " << color.green() 
                    << " b  = " << color.blue() ;

7.2文件对话框(过滤)

           //文件对话框  参数 1  父亲  参数2  标题   
                        参数3  默认打开路径  参数4  过滤文件格式
           //返回值是 选取的路径
            QString str = QFileDialog::getOpenFileName(this,"打开文 
            件","D:\\下载\\aaa","(*.txt)");
            qDebug() << str;

 

7.3 字体对话框

            //字体对话框
           bool flag;
           QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));
           qDebug() << "字体:" << font.family().toUtf8().data()
                    //.ToUtf8() 转为 QByteArray,.data() 转为 char*
                    << " 字号 "<< font.pointSize()
                    << " 是否加粗"<< font.bold()
                    << " 是否倾斜"<<font.italic();

 

源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/06_QDialog

五、创建简单登录界面 

源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/07_layout

推荐看视频:

登录界面icon-default.png?t=N7T8https://www.bilibili.com/video/BV1g4411H78N?p=23&vd_source=0c3415ec4f238d01f925a8521c722882

 六、控件

效果展示图

源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/08_Qt_control

推荐看视频(两个):

https://www.bilibili.com/video/BV1g4411H78N?p=24&vd_source=0c3415ec4f238d01f925a8521c722882

https://www.bilibili.com/video/BV1g4411H78N?p=25&vd_source=0c3415ec4f238d01f925a8521c722882

七、树控件(TreeWidget)

效果展示图

具体代码:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //treeWidget树控件

    //设置水平头
   ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");

   QTreeWidgetItem * liItem = new QTreeWidgetItem(QStringList()<<"力量");
   QTreeWidgetItem * liItem1 = new QTreeWidgetItem(QStringList()<<"敏捷");
   QTreeWidgetItem * liItem2 = new QTreeWidgetItem(QStringList()<<"智力");
   //加载顶层节点
   ui->treeWidget->addTopLevelItem(liItem);
   ui->treeWidget->addTopLevelItem(liItem1);
   ui->treeWidget->addTopLevelItem(liItem2);
     //追加子节点
     QStringList heroL1;
     heroL1<<"钢被🐖"<<"前排坦克,能在吸收伤害的同时造成可观的范围输出";
     QTreeWidgetItem * l1 = new QTreeWidgetItem(heroL1);
     liItem->addChild(l1);
     QStringList heroL2;
     heroL2<<"斯比克"<<"前排坦克,能在吸收伤害的同时反弹所受伤害的50%";
     QTreeWidgetItem * l2 = new QTreeWidgetItem(heroL2);
     liItem->addChild(l2);

     QStringList heroM1;
     heroM1<<"小丑🤡"<<"游走刺客,拥有伤害高可投掷的小丑炸弹和珍贵的稻草人保命技能";
     QTreeWidgetItem * M1 = new QTreeWidgetItem(heroM1);
     liItem1->addChild(M1);

     QStringList heroM2;
     heroM2<<"小丑皇🎃"<<"隐身刺客,拥有伤害高可投掷的小丑夺命连环手里剑和多重影分身";
     QTreeWidgetItem * M2 = new QTreeWidgetItem(heroM2);
     liItem1->addChild(M2);

     QStringList heroZ1;
     heroZ1<<"猪角量"<<"分析法师,能快速对当前战场情况进行分析并做出判断";
     QTreeWidgetItem * Z1 = new QTreeWidgetItem(heroZ1);
     liItem2->addChild(Z1);

     QStringList heroZ2;
     heroZ2<<"骤雨"<<"爆发法师,短时间内对当前区域造成大量冰锥穿刺";
     QTreeWidgetItem * Z2 = new QTreeWidgetItem(heroZ2);
     liItem2->addChild(Z2);

}

Widget::~Widget()
{
    delete ui;
}

源码:

 https://gitee.com/liu-wei-hao123/green_C/tree/master/09_TreeWidget

 八、表格控件(TableWidget)

效果展示图

具体代码

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //TableWidget控件
    //设置列数
    ui->tableWidget->setColumnCount(3);

        //设置水平表头
        ui->tableWidget->setHorizontalHeaderLabels(QStringList()
                                                   <<"姓名"
                                                   << "性别"
                                                   << "年龄");

        //设置行数
        ui->tableWidget->setRowCount(5);

        //设置正文
        //ui->tableWidget->setItem(0,0, new QTableWidgetItem("亚瑟"));
        QStringList nameList;
        nameList<< "亚瑟"<< "赵云"<< "张飞"<< "关羽" << "花木兰";

        QList<QString> sexList;
        sexList << "男"<< "男"<< "男"<< "男"<< "女";

        for(int i = 0 ; i < 5 ;i ++)
          {
              int col = 0;
              ui->tableWidget->setItem(i,col++, new QTableWidgetItem(nameList[i]));
              ui->tableWidget->setItem(i,col++, new QTableWidgetItem(sexList.at(i)));
              //int 转 QString
              ui->tableWidget->setItem(i,col++, new QTableWidgetItem( QString::number(i+18)));
          }

}

Widget::~Widget()
{
    delete ui;
}

 源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/

九、其他常用控件

效果展示图

具体代码:

#include "widget.h"
#include "ui_widget.h"
#include<QMovie>
#include<QImage>
#include<QPixmap>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //栈控件使用
        //设置默认定位 scrollArea
        ui->stackedWidget->setCurrentIndex(0);

        //scrollArea按钮
        connect(ui->btn_scrollArea,&QPushButton::clicked,[=](){
            ui->stackedWidget->setCurrentIndex(0);
        });

        //toolBox按钮
        connect(ui->btn_ToolBox,&QPushButton::clicked,[=](){
            ui->stackedWidget->setCurrentIndex(1);
        });

        //TabWidget按钮
        connect(ui->btn_TabWidget,&QPushButton::clicked,[=](){
            ui->stackedWidget->setCurrentIndex(2);
        });

        //下拉框
        ui->comboBox->addItem("奔驰");
        ui->comboBox->addItem("宝马");
        ui->comboBox->addItem("拖拉机");

        //点击按钮 选中拖拉机选项
        connect(ui->btn_select,&QPushButton::clicked,[=](){
            //ui->comboBox->setCurrentIndex(2);
            ui->comboBox->setCurrentText("拖拉机");
        });

        ui->lbl_Image->setPixmap(QPixmap(":/anniu/1.png"));

        //利用QLabel显示 gif动态图片
        QMovie * movie = new QMovie(":/anniu/5.gif");
        ui->lbl_movie->setMovie(movie);
        //播放动图
        movie->start();
}

Widget::~Widget()
{
    delete ui;
}

 源码:

https://gitee.com/liu-wei-hao123/green_C/tree/master/11_OthorControl

视频:

https://www.bilibili.com/video/BV1g4411H78N?p=28&vd_source=0c3415ec4f238d01f925a8521c722882

  第二天的学习记录分享完毕,关注我,带你了解更多的编程知识。

看到这里,不妨点个攒,关注一下吧!

最后,谢谢你的观看!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】缺省参数和函数重载

目录 1.缺省参数 1.1缺省参数的定义 1.2 缺省参数的简单应用 1.3 缺省参数分类&#xff1a;全缺省参数和半缺省参数 1.3.1半缺省参数 1.3.2全缺省参数 3.缺省参数注意事项&#xff1a;缺省参数不能在函数声明和定义中同时出现 4.函数重载 4.1 函数重载概念 4.2 函数参数类型…

matlab使用教程(35)—求解时滞微分方程(3)

1中立型 DDE 以下示例说明如何使用 ddensd 求解中立型 DDE&#xff08;时滞微分方程&#xff09;&#xff0c;其中时滞出现在导数项中。此问题最初由 Paul [1] 提出。方程是&#xff1a; 由于该方程在 y ′ 项中存在时滞&#xff0c;因此该方程称为中立型 DDE。如果时滞仅出现…

基于SSM的基于个人需求和地域特色的外卖推荐系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的基于个人需求和地域特色的外卖推荐系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

10 - 三态门和寄存器

1. 三态门 1.1 引入背景 现在我们需要封装一个单字节存储器。 Clear 清零&#xff0c;Pre 置 1&#xff0c;CP 的上升沿将输入 DI 数据写入。 问题&#xff1a;总线冲突。如果将多个存储器连到一起&#xff0c;就会出现一个输入连到多个输出发生数据冲突的问题。 需要三态门…

【单片机家电产品学习记录--红外线】

单片机家电产品学习记录–红外线 红外手势驱动电路&#xff0c;&#xff08;手势控制的LED灯&#xff09; 原理 通过红外线对管&#xff0c;IC搭建的电路&#xff0c;实现灯模式转换。 手势控制灯模式转换&#xff0c;详细说明 转载 1《三色调光LED台灯电路》&#xff0c…

计数排序解读

当我们提及排序算法时&#xff0c;通常会想到冒泡排序、选择排序、插入排序、归并排序和快速排序等经典算法。然而&#xff0c;今天我们要探讨的是一种非比较型整数排序算法——计数排序。计数排序在某些特定场景下表现出色&#xff0c;具有线性的时间复杂度。下面我们将深度剖…

SYS-2722音频分析仪SYS2722

181/2461/8938产品概述&#xff1a; Audio Precision 2722 音频分析仪是 Audio Precision 屡获殊荣的 PC 控制音频分析仪的旗舰型号&#xff0c;长期以来一直是音频设备设计和测试的全球公认标准。功能齐全的 SYS-2722 提供了测试转换器技术最新进展所需的无与伦比的失真和噪声…

NoSQL概述

NoSQL概述 目录 一、为什么用NoSQL 二、什么是NoSQL 三、经典应用分析 四、N o S Q L 数 据 模 型 简 介 五、NoSQL四大分类 六、CAP BASE 一、为什么用NoSQL 1、单机MySQL的美好年代 在90年代&#xff0c;一个网站的访问量一般不大&#xff0c;用单个数据库完全可以轻松应…

Linux离线安装python3(源码编译)

1、下载python包 下载python3.9.6的源码包 python下载 下载后&#xff0c;解压&#xff0c;目录如下&#xff1a; -rw-------. 1 root root 1454 Aug 26 2023 anaconda-ks.cfg -rw-r--r--. 1 root root 25640094 Apr 4 21:52 Python-3.9.6.tgz drwxrwxr…

搭建电商购物独立站抓取主流电商产品数据的方法:工具+电商数据采集API接口

分享一个抓取数据产品的方法&#xff0c;也是别人给我说的。 想做一个联盟产品相关的网站&#xff0c;然后需要采集电商网站的产品。咨询大佬告诉我&#xff0c;大量级电商商品数据的采集可以接入专业的电商数据采集API接口&#xff0c;也可以用webscrsper&#xff0c;于是乎就…

秒懂Springboot之如何使用logback做日志脱敏和截取

[版权申明] 非商业目的注明出处可自由转载 出自&#xff1a;shusheng007 文章目录 前言日志logback原理实现原理方案 技术总结总结源码 前言 日志的重要性无需多言&#xff0c;而数据的安全性亦不用赘述&#xff0c;但不幸的是它两常常产生矛盾。要便利就会牺牲安全&#xff0…

【MySQL】如何判断一个数据库是否出问题

在实际的应用中&#xff0c;其实大多数是主从结构。而采用主备&#xff0c;一般都需要一定的费用。 对于主备&#xff0c;如果主机故障&#xff0c;那么只需要直接将流量打到备机就可以&#xff0c;但是对于一主多从&#xff0c;还需要将从库连接到主库上。 对于切换的操作&a…

阿里云无影云电脑具体价格_4核8G和8核16G配置99元一年

2024年阿里云无影云电脑具体价格99元一年起&#xff0c;配置可选4核8G和8核16G&#xff0c;使用时长可选800小时和1800小时&#xff0c;目前有四款无影云电脑可以享受优惠价格&#xff0c;阿里云服务器网aliyunfuwuqi.com整理2024年无影云电脑详细配置和优惠价格表&#xff0c;…

ARMv8/Armv9架构中cacheable属性的介绍

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 思考&#xff1a;在页表的Descriptors中的Lower attributes中的AttrIndx中指向的MAIR_EL1寄存器中有配置cacheable属性, 在TCR_EL1寄存器中有cacheable属性位ORGN0、IRGN0、ORGN1…

每日五道java面试题之ZooKeeper篇(三)

目录&#xff1a; 第一题. 会话管理第二题. 服务器角色第三题. Zookeeper 下 Server 工作状态第四题. 数据同步第五题. zookeeper 是如何保证事务的顺序一致性的&#xff1f; 第一题. 会话管理 分桶策略&#xff1a;将类似的会话放在同一区块中进行管理&#xff0c;以便于 Zoo…

C语言第四十弹---预处理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 预处理 1、#和## 1.1 #运算符 1.2、##运算符 2、命名约定 3、#undef 4、命令行定义 5、条件编译 6、头文件的包含 6.1、头文件被包含的方式 6.1.1、本地…

蓝桥杯-冶炼金属(二分求最大最小)

P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二分做法&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long const int N 1e410; int n,a,b; int v[N],cnt[N]; int check(int x){for(int i1;i<n;i…

硬件-1、体系架构

cpu 处理器 arm处理器的七种工作模式 arm寄存器 两张图是一样的&#xff0c;r0---r12是通用寄存器。其他寄存器可参考图一&#xff0c;cpu架构。 程序状态寄存器psr&#xff08;cpsr/spsr&#xff09; 程序异常处理 理解示例 当使用swi&#xff08;软中断指令&#xff09;指令…

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现 文章目录 RabbitMQ3.13.x之十_流过滤的内部结构设计与实现1. 概念1. 消息发布2. 消息消费 2. 流的结构1. 在代理端进行过滤2. 客户端筛选3. JavaAPI示例4. 流过滤配置5. AMQP上的流过滤6. 总结 3. 相关链接 1. 概念 流过滤的思…

大算力芯片,正在拥抱Chiplet

随着摩尔定律走到极限&#xff0c;Chiplet被行业普遍认为是未来5年算力的主要提升技术。 在和业内人士交流时&#xff0c;有人曾表示&#xff1a;“要么业界采用Chiplet技术&#xff0c;维持摩尔定律的影响继续前进&#xff0c;要么就面临商业市场的损失。” 随着摩尔定律走到…