Qt入门小项目 | 实现腾讯会议登陆界面

文章目录

  • 一、手写代码实现腾讯会议登陆界面
  • 二、使用UI设计器实现腾讯会议登陆界面

一、手写代码实现腾讯会议登陆界面

  使用Qt控件与布局实现腾讯会议登陆界面。
示例:
loginInCode.h

#pragma once

#include <QtWidgets/QDialog>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QLabel>
#include <QToolButton>

class loginInCode : public QDialog
{
    Q_OBJECT

public:
    loginInCode(QWidget *parent = Q_NULLPTR);

private:
    QVBoxLayout* mainVLayout;
    QHBoxLayout* titleBarHLayout;
    QPushButton* btnSet;
    QLabel* label;
    QPushButton* btnMin;
    QPushButton* btnClose;
    QHBoxLayout* logoHLayout;
    QLabel* label_logo;
    QHBoxLayout* horizontalLayout_5;
    QVBoxLayout* verticalLayout;
    QPushButton* btnWeichatLognin;
    QPushButton* btnJoin;
    QHBoxLayout* horizontalLayout_2;
    QFrame* line;
    QLabel* label_3;
    QFrame* line_2;
    QHBoxLayout* horizontalLayout_3;
    QToolButton* toolBtnPhone;
    QToolButton* toolBtnEnpriseWeichat;
    QToolButton* toolBtnSSO;
};

loginInCode.cpp

#include "loginInCode.h"
#include <QCoreApplication>


loginInCode::loginInCode(QWidget *parent)
    : QDialog(parent)
{
    //整体布局
    mainVLayout = new QVBoxLayout(this);
    mainVLayout->setSpacing(7);
    mainVLayout->setContentsMargins(11, 11, 11, 11);
    mainVLayout->setObjectName(QString::fromUtf8("mainVLayout"));

    //标题栏布局
    titleBarHLayout = new QHBoxLayout();
    titleBarHLayout->setSpacing(6);
    titleBarHLayout->setObjectName(QString::fromUtf8("titleBarHLayout"));
    
    //标题栏:设置按钮、标题、最小化按钮、关闭按钮
    btnSet = new QPushButton(this);
    btnSet->setObjectName(QString::fromUtf8("btnSet"));
    btnSet->setMinimumSize(QSize(32, 32));
    btnSet->setMaximumSize(QSize(32, 32));

    label = new QLabel(this);
    label->setObjectName(QString::fromUtf8("label"));
    label->setAlignment(Qt::AlignCenter);

    btnMin = new QPushButton(this);
    btnMin->setObjectName(QString::fromUtf8("btnMin"));
    btnMin->setMinimumSize(QSize(32, 32));
    btnMin->setMaximumSize(QSize(32, 32));

    btnClose = new QPushButton(this);
    btnClose->setObjectName(QString::fromUtf8("btnClose"));
    QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
    sizePolicy.setHorizontalStretch(0);
    sizePolicy.setVerticalStretch(0);
    sizePolicy.setHeightForWidth(btnClose->sizePolicy().hasHeightForWidth());
    btnClose->setSizePolicy(sizePolicy);
    btnClose->setMinimumSize(QSize(32, 32));
    btnClose->setMaximumSize(QSize(32, 32));

    //将标题栏控件添加到标题栏布局中
    titleBarHLayout->addWidget(btnSet);
    titleBarHLayout->addWidget(label);
    titleBarHLayout->addWidget(btnMin);
    titleBarHLayout->addWidget(btnClose);


    //logo布局
    logoHLayout = new QHBoxLayout();
    logoHLayout->setObjectName(QString::fromUtf8("logoHLayout"));
    logoHLayout->setSpacing(40);


    label_logo = new QLabel(this);
    label_logo->setObjectName(QString::fromUtf8("label_logo"));
    label_logo->setMinimumSize(QSize(400, 336));
    label_logo->setMaximumSize(QSize(400, 336));

    logoHLayout->addWidget(label_logo);
    logoHLayout->setSpacing(40);

    //按钮:微信登陆,加入会议
    horizontalLayout_5 = new QHBoxLayout();
    horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
    horizontalLayout_5->setSpacing(40);

    verticalLayout = new QVBoxLayout();
    verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
    btnWeichatLognin = new QPushButton(this);
    btnWeichatLognin->setObjectName(QString::fromUtf8("btnWeichatLognin"));
    btnWeichatLognin->setMinimumSize(QSize(400, 50));
    btnWeichatLognin->setMaximumSize(QSize(400, 50));

    btnJoin = new QPushButton(this);
    btnJoin->setObjectName(QString::fromUtf8("btnJoin"));
    btnJoin->setMinimumSize(QSize(400, 50));
    btnJoin->setMaximumSize(QSize(400, 50));

    verticalLayout->addWidget(btnWeichatLognin);
    verticalLayout->setSpacing(20);
    verticalLayout->addWidget(btnJoin);

    horizontalLayout_5->addLayout(verticalLayout);
    horizontalLayout_5->setSpacing(40);

    //分界线:两条线,一个文本
    horizontalLayout_2 = new QHBoxLayout();
    horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));

    line = new QFrame(this);
    line->setObjectName(QString::fromUtf8("line"));
    line->setFrameShape(QFrame::HLine);
    line->setFrameShadow(QFrame::Sunken);

    label_3 = new QLabel(this);
    label_3->setObjectName(QString::fromUtf8("label_3"));
    label_3->setAlignment(Qt::AlignCenter);

    line_2 = new QFrame(this);
    line_2->setObjectName(QString::fromUtf8("line_2"));
    line_2->setFrameShape(QFrame::HLine);
    line_2->setFrameShadow(QFrame::Sunken);
    
    horizontalLayout_2->addWidget(line);
    horizontalLayout_2->addWidget(label_3);
    horizontalLayout_2->addWidget(line_2);

    //工具按钮栏:手机号、企业微信、SSO
    horizontalLayout_3 = new QHBoxLayout();
    horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));

    toolBtnPhone = new QToolButton(this);
    toolBtnPhone->setObjectName(QString::fromUtf8("toolBtnPhone"));
    toolBtnPhone->setMinimumSize(QSize(60, 80));
    toolBtnPhone->setMaximumSize(QSize(60, 80));

    toolBtnEnpriseWeichat = new QToolButton(this);
    toolBtnEnpriseWeichat->setObjectName(QString::fromUtf8("toolBtnEnpriseWeichat"));
    toolBtnEnpriseWeichat->setMinimumSize(QSize(60, 80));
    toolBtnEnpriseWeichat->setMaximumSize(QSize(60, 80));

    toolBtnSSO = new QToolButton(this);
    toolBtnSSO->setObjectName(QString::fromUtf8("toolBtnSSO"));
    toolBtnSSO->setMinimumSize(QSize(60, 80));
    toolBtnSSO->setMaximumSize(QSize(60, 80));

    horizontalLayout_3->addWidget(toolBtnPhone);
    horizontalLayout_3->addWidget(toolBtnEnpriseWeichat);
    horizontalLayout_3->addWidget(toolBtnSSO);

    //将子布局添加到整体布局中
    mainVLayout->addLayout(titleBarHLayout);
    mainVLayout->setSpacing(40);
    mainVLayout->addLayout(logoHLayout);
    mainVLayout->setSpacing(40);
    mainVLayout->addLayout(horizontalLayout_5);
    mainVLayout->addLayout(horizontalLayout_2);
    mainVLayout->addLayout(horizontalLayout_3);

    //利用翻译单元设置文本
    this->setWindowTitle(QCoreApplication::translate("this", "ch2_1_TencentMeetingLogIn", nullptr));
    btnSet->setText(QCoreApplication::translate("this", "PushButton", nullptr));
    label->setText(QCoreApplication::translate("this", "\350\247\206\351\242\221\344\274\232\350\256\256", nullptr));
    btnMin->setText(QCoreApplication::translate("this", "PushButton", nullptr));
    btnClose->setText(QCoreApplication::translate("this", "PushButton", nullptr));
    label_logo->setText(QCoreApplication::translate("this", "TextLabel", nullptr));
    btnWeichatLognin->setText(QCoreApplication::translate("this", "\345\276\256\344\277\241\347\231\273\351\231\206", nullptr));
    btnJoin->setText(QCoreApplication::translate("this", "\345\212\240\345\205\245\344\274\232\350\256\256", nullptr));
    label_3->setText(QCoreApplication::translate("this", "\345\205\266\344\273\226\347\231\273\351\231\206\346\226\271\345\274\217", nullptr));
    toolBtnPhone->setText(QCoreApplication::translate("this", "...", nullptr));
    toolBtnEnpriseWeichat->setText(QCoreApplication::translate("this", "...", nullptr));
    toolBtnSSO->setText(QCoreApplication::translate("this", "...", nullptr));

    //Qt::FramelessWindowHint:创建无边框窗口
    //Qt::WindowMinMaxButtonsHint:窗口可以最大化与最小化
    this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint);
    //this->setStyleSheet("background-color:white;border:none");

    //设置控件的样式表qss
    //btnSet
    btnSet->setText("");
    btnSet->setStyleSheet("QPushButton{background-image:url(:/loginInCode/resources/set.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //btnMin
    btnMin->setText("");
    btnMin->setStyleSheet("QPushButton{background-image:url(:/loginInCode/resources/min.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //btnClose
    btnClose->setText("");
    btnClose->setStyleSheet("QPushButton{background-image:url(:/loginInCode/resources/close.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //lable_logo
    label_logo->clear();
    QPixmap* pix = new QPixmap(":/loginInCode/resources/logo.jpg");
    pix->scaled(label_logo->size(), Qt::KeepAspectRatio);
    label_logo->setScaledContents(true);
    label_logo->setPixmap(*pix);

    //btnWeichatLognin
    btnWeichatLognin->setText("");
    btnWeichatLognin->setStyleSheet("QPushButton{background-image:url(:/loginInCode/resources/weichatlogin.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //btnJoin
    btnJoin->setStyleSheet("QPushButton{color:#0054E6;background-color:rgb(255,255,255);border-style:outset;border-width:0.5px;border-color:gray;border-radius:2px;} \
        QPushButton:hover{border-color:blue;}"
    );

    //toolBtnPhone
    toolBtnPhone->setIcon(QIcon(":/loginInCode/resources/phonelogin.png"));
    toolBtnPhone->setIconSize(QSize(60, 60));
    toolBtnPhone->setText(u8"手机号");
    toolBtnPhone->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    toolBtnPhone->setStyleSheet("background-color:white;border:none");

    //toolBtnEnpriseweichat
    toolBtnEnpriseWeichat->setIcon(QIcon(":/loginInCode/resources/enpriseweichat.png"));
    toolBtnEnpriseWeichat->setIconSize(QSize(60, 60));
    toolBtnEnpriseWeichat->setText(u8"企业微信");
    toolBtnEnpriseWeichat->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    toolBtnEnpriseWeichat->setStyleSheet("background-color:white;border:none");

    //toolBtnPhone
    toolBtnSSO->setIcon(QIcon(":/loginInCode/resources/sso.png"));
    toolBtnSSO->setIconSize(QSize(60, 60));
    toolBtnSSO->setText(u8"SSO");
    toolBtnSSO->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    toolBtnSSO->setStyleSheet("background-color:white;border:none");

    connect(btnClose, &QPushButton::clicked, [=] {
        close();
     });
}

main.cpp

#include "loginInCode.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    loginInCode w;
    w.show();
    return a.exec();
}

运行结果:
image-20240625151113624

二、使用UI设计器实现腾讯会议登陆界面

  结合Qt设计器与代码实现腾讯会议登陆界面。下面是一些Qt Designer中的要点。

Qt Designer中一些技巧:

  • 固定大小:将最小大小与最大大小设置成一样即为固定大小

    image-20240620223812023

  • QLable中可以设置居中对齐

    image-20240620224334349

  • 灵活使用弹簧

  • 对象整体垂直布局调整:包含:上下左右边界宽度、子水平布局之间的间隔、子水平布局的伸缩调整

    image-20240620225702146

  • 添加资源文件

    双击xx.qrc文件,点击“Add–>Add Files"

    image-20240624142901292

    找到“resources”目录,全选添加

    image-20240624143028133

  经Qt设计器设计的结果为
image-20240625151422845
  接下来,在代码中

  • 去掉窗口边框
  • 添加控件样式
  • 窗口移动

示例:
xx.h

#pragma once

#include <QtWidgets/QDialog>
#include "ui_ch2_1_TencentMeetingLogIn.h"

class ch2_1_TencentMeetingLogIn : public QDialog
{
    Q_OBJECT

public:
    ch2_1_TencentMeetingLogIn(QWidget *parent = Q_NULLPTR);

private slots:
    void on_btnClose_clicked();

private:
    Ui::ch2_1_TencentMeetingLogInClass ui;
};

xxx.cpp

#include "ch2_1_TencentMeetingLogIn.h"

ch2_1_TencentMeetingLogIn::ch2_1_TencentMeetingLogIn(QWidget *parent)
    : QDialog(parent)
{
    ui.setupUi(this);
    //Qt::FramelessWindowHint:创建无边框窗口
    //Qt::WindowMinMaxButtonsHint:窗口可以最大化与最小化
    this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint);
    //this->setStyleSheet("background-color:white;border:none");

    //设置控件的样式表qss
    //btnSet
    ui.btnSet->setText("");
    ui.btnSet->setStyleSheet("QPushButton{background-image:url(:/ch2_1_TencentMeetingLogIn/resources/set.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //btnMin
    ui.btnMin->setText("");
    ui.btnMin->setStyleSheet("QPushButton{background-image:url(:/ch2_1_TencentMeetingLogIn/resources/min.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //btnClose
    ui.btnClose->setText("");
    ui.btnClose->setStyleSheet("QPushButton{background-image:url(:/ch2_1_TencentMeetingLogIn/resources/close.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //lable_logo
    ui.label_logo->clear();
    QPixmap* pix = new QPixmap(":/ch2_1_TencentMeetingLogIn/resources/logo.jpg");
    pix->scaled(ui.label_logo->size(), Qt::KeepAspectRatio);
    ui.label_logo->setScaledContents(true);
    ui.label_logo->setPixmap(*pix);

    //btnWeichatLognin
    ui.btnWeichatLognin->setText("");
    ui.btnWeichatLognin->setStyleSheet("QPushButton{background-image:url(:/ch2_1_TencentMeetingLogIn/resources/weichatlogin.png);border:none} \
        QPushButton::hover{background-color:rgb(99,99,99)}"
    );

    //btnJoin
    ui.btnJoin->setStyleSheet("QPushButton{color:#0054E6;background-color:rgb(255,255,255);border-style:outset;border-width:0.5px;border-color:gray;border-radius:2px;} \
        QPushButton:hover{border-color:blue;}"
    );

    //toolBtnPhone
    ui.toolBtnPhone->setIcon(QIcon(":/ch2_1_TencentMeetingLogIn/resources/phonelogin.png"));
    ui.toolBtnPhone->setIconSize(QSize(60, 60));
    ui.toolBtnPhone->setText(u8"手机号");
    ui.toolBtnPhone->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    ui.toolBtnPhone->setStyleSheet("background-color:white;border:none");
    
    //toolBtnEnpriseweichat
    ui.toolBtnEnpriseWeichat->setIcon(QIcon(":/ch2_1_TencentMeetingLogIn/resources/enpriseweichat.png"));
    ui.toolBtnEnpriseWeichat->setIconSize(QSize(60, 60));
    ui.toolBtnEnpriseWeichat->setText(u8"企业微信");
    ui.toolBtnEnpriseWeichat->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    ui.toolBtnEnpriseWeichat->setStyleSheet("background-color:white;border:none");

    //toolBtnPhone
    ui.toolBtnSSO->setIcon(QIcon(":/ch2_1_TencentMeetingLogIn/resources/sso.png"));
    ui.toolBtnSSO->setIconSize(QSize(60, 60));
    ui.toolBtnSSO->setText(u8"SSO");
    ui.toolBtnSSO->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    ui.toolBtnSSO->setStyleSheet("background-color:white;border:none");

    connect(ui.btnClose, &QPushButton::clicked, [=]{
        close();
    });
}


void ch2_1_TencentMeetingLogIn::on_btnClose_clicked()
{
    this->close();
}

main.cpp

#include "ch2_1_TencentMeetingLogIn.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    ch2_1_TencentMeetingLogIn w;
    w.show();
    return a.exec();
}

运行结果

image-20240625152006831

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

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

相关文章

安装zabbix时报错Could not resolve host: mirrors.huaweicloud.com;Unknown error解决办法

目录 1、问题原因 2、解决办法 3、知识拓展 DNS的区别 DNS配置文件解析 域名解析过程 4、书籍推荐 当安装Zabbix server&#xff0c;Web前端&#xff0c;agent时出现&#xff1a; [rootsc-zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent安装过程中会出…

Token详解

一&#xff1a;Token是什么 token是具有访问权限的令牌&#xff0c;其本质是一串字符串。 如何创建token 用户在登录页面&#xff0c;输入账号和密码能够成功登录后&#xff1b;由后端签发并返回 token作用 用来判断用户当前的登录状态&#xff0c;根据当前用户登录状态给…

OceanBase 4.X-2F1A 仲裁高可用方案初探

作者&#xff1a;郑增权&#xff0c;爱可生 DBA 团队成员&#xff0c;OceanBase 和 MySQL 数据库技术爱好者。 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。 本文约 1500 字&#xff0c;预计阅读需要 5 分钟。 背景 对…

CS与MSF的权限互相传递/mimikatz抓取windows 2012明文密码

目录 CS和MSF的简单介绍 Metasploit Cobalt Strike 1、CS权限传递到MSF 2、MSF权限传递到CS 3、使用mimikatz抓取明文密码 通过修改注册表用户重新登录后抓取明文密码 今天的任务是两个 一个是CS与MSF的权限互相传递一个是抓取windows2012的明文密码 那就分别来完成 …

printf趣味代码,打印图案

文章目录 1.打印佛祖2.打印猫猫 (闪烁效果) 1.打印佛祖 #include <stdio.h>void budda_bless(){printf("///\n\ // _ooOoo_ //\n\ // o8888888o //\n\ // …

SpringBoot全局配置文件里的配置项

SpringBoot核心配置文件里可以配置的配置项&#xff0c;非常非常多&#xff01;Spring Boot Reference Guide靠后的附件里看到所有配置项和说明. 有关配置项&#xff0c;我们除了知道在哪里查询具体配置项以外&#xff0c;我们还应该知道一些细节知识点: ① SpringBoot给我们…

2024广东省职业技能大赛云计算赛项实战——集群部署GitLab

集群部署GitLab 前言 题目是这样的&#xff1a; 在Kubernetes集群中新建命名空间gitlab-ci&#xff0c;将GitLab部署到该命名空间下&#xff0c;Deployment和Service名称均为gitlab&#xff0c;以NodePort方式将80端口对外暴露为30880&#xff0c;设置GitLab服务root用户的密…

Python 高级编程:文件操作与错误处理

在前几篇文章中&#xff0c;我们介绍了Python的基本语法、函数和模块以及面向对象编程。这些知识对于大部分日常编程问题已经足够&#xff0c;但对于需要分析大数据的人来说&#xff0c;这些还不够。本章将介绍Python的文件操作以及错误处理与调试。 目录 文件操作读文件写文…

制造业采购堡垒机的四大必要性看这里!

制造业包括的行业广泛&#xff0c;与大家的生活息息相关&#xff0c;例如食品制造业、汽车制造业、纺织业、服装制造业等等。但大家对于制造业不是很了解&#xff0c;不知道制造业也是需要采购堡垒机的&#xff0c;今天我们就来聊聊制造业采购堡垒机的必要性。 制造业采购堡垒机…

node mySql 实现数据的导入导出,以及导入批量插入的sql语句

node 实现导出, 在导出excel中包含图片&#xff08;附件&#xff09; node 实现导出, 在导出excel中包含图片&#xff08;附件&#xff09;-CSDN博客https://blog.csdn.net/snows_l/article/details/139999392?spm1001.2014.3001.5502 一、效果 如图&#xff1a; 二、导入 …

AI商品图生成企业定制服务,广州这家公司走在了行业前头

&#x1f680; 最强AI绘图设计企业定制服务出炉 —— 触站A&#xff0c;智能艺术的革新者 &#x1f31f; &#x1f3a8; 触站AI&#xff0c;绘制未来的智能艺术 &#x1f3a8;在AI技术的浪潮中&#xff0c;触站AI以其前沿技术&#xff0c;为艺术与设计领域注入了新的活力。 &a…

【SkiaSharp绘图11】SKCanvas属性详解

文章目录 SKCanvas构造SKCanvas构造光栅 Surface构造GPU Surface构造PDF文档构造XPS文档构造SVG文档SKNoDrawCanvas 变换剪裁和状态构造函数相关属性DeviceClipBounds获取裁切边界(设备坐标系)ClipRect修改裁切区域IsClipEmpty当前裁切区域是否为空IsClipRect裁切区域是否为矩形…

C3P0数据库连接池

目录 一&#xff1a;连接池介绍 1.1连接池解决的问题 2.常用的数据库连接池 二&#xff1a;c3p0介绍 2.1C3P0介绍&#xff1a; 2.2C3P0快速入门 1.常用参数说明 2.API介绍 3.使用步骤 1.导入jar包c3p0-0.9.1.2.jar 2.编写c3p0-config.xml配置文件&#xff0c;配置对…

深入探索:大型语言模型消除幻觉的解决之道

随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为自然语言处理领域的明星。它们以其庞大的知识库和生成连贯、上下文相关文本的能力&#xff0c;极大地推动了研究、工业和社会的进步。然而&#xff0c;这些模型在生成文本时可能会产生…

27. 高级特性(下)

目录 一、为了类型安全和抽象而使用 newtype 模式二、使用类型别名创建类型同义词2.1 使用type关键赋予现有类型一个别名2.2 减少重复2.3 与Result<T, E>结合使用2.4 从不返回的 never type 三、高级函数和闭包3.1 函数指针3.2 返回闭包 四、宏4.1 宏和函数的区别4.2 mac…

2024 最新推广服务 API 推荐,助力业务腾飞

在数字化营销的浪潮中&#xff0c;API 服务正以其强大的功能和高效的特性&#xff0c;成为企业和开发者们实现精准推广、优化营销效果的得力助手。2024 年的今天&#xff0c;各种创新的 API 服务层出不穷&#xff0c;为广告投放、数据洞察等领域带来了前所未有的机遇。在接下来…

echarts隔行背景色

看了下使用说明&#xff0c;试了半天终于搞对了 参考文档&#xff1a;Documentation - Apache ECharts option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: bar,mar…

视频共享融合赋能平台LntonCVS视频监控业务平台建设安全煤矿矿井应用方案

随着我国经济的飞速增长&#xff0c;煤炭作为主要的能源之一&#xff0c;在我国的能源结构中扮演着至关重要的角色。然而&#xff0c;煤矿事故的频繁发生&#xff0c;不仅造成了巨大的人员伤亡和财产损失&#xff0c;也对社会产生了深远的负面影响。因此&#xff0c;实现煤矿的…

多家国产大模型提供OpenAI API服务替代方案,谷歌将推出明星网红AI聊天机器人

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 1、OpenAI终止对中国提供服务 6月25日凌晨&#xff0c;多个用户收到OpenAI的推送邮件&#xff0c;信中称&#xff0c;自今年7月9日起&#xff0c;将开始阻止来自非支持国家和地区的API&#xff08;应…

华为od-C卷200分题目3 - 两个字符串间的最短路径问题

华为od-C卷200分题目3 - 两个字符串间的最短路径问题 题目描述 给定两个字符串&#xff0c;分别为字符串A与字符串B。 例如A字符串为ABCABBA&#xff0c;B字符串为CBABAC可以得到下图m*n的二维数组&#xff0c;定义原点为(0, 0)&#xff0c;终点为(m, n)&#xff0c;水平与垂…