QT实战--qt各种按钮实现

本篇介绍qt一些按钮的实现,包括正常按钮;带有下拉箭头的按钮的各种实现;按钮和箭头两部分分别响应;图片和按钮大小一致;图片和按钮大小不一致的处理;文字和图片位置的按钮

效果图如下:

详细实现如下:

1.正常按钮

代码:

    m_normalBtn = new QPushButton(this);
    m_normalBtn->setObjectName("mynormal");
    m_normalBtn->setFixedSize(240, 36);
    m_normalBtn->setText("正常按钮");
    //m_normalBtn->setEnabled(false);
    m_normalBtn->move(10,10);

qss文件:

/**1.正常按钮***/
QPushButton#mynormal
{
background-color:transparent;
background-image: url(:/skin/pic/login_btn.png);
font-size:14px;
font-family:"Arial";
color:#666666;
}

QPushButton#mynormal:hover
{
background-image: url(:/skin/pic/login_btn_hover.png);
color:#F0103C;
}

QPushButton#mynormal:pressed
{
background-image: url(:/skin/pic/login_btn_press.png);
color:#F0103C;
}

QPushButton#mynormal:disabled
{
background-image: url(:/skin/pic/login_btn_disable.png);
color: #73797e;
}

2.带有上箭头的按钮

代码:

    m_upArrowBtn = new QPushButton("更多", this);
    m_upArrowBtn->setObjectName("myup");
    m_upArrowBtn->setCheckable(false);
    m_upArrowBtn->setFixedSize(60,22);
    m_upArrowBtn->move(10,60);

qss文件:

/***2上箭头*********/
QPushButton#myup
{
border:none;
background-color:rgb(0,255,0);
background-image: url(:/skin/pic/morebtn_up.png);
background-origin: content;
background-position: right;
background-repeat: no-repeat;

font-size:12px;
font-family:"Arial";
color:#666666;
text-align:left ;
padding-top: 0px;
padding-bottom:0px;
padding-left:11px;
padding-right: 11px;

}

QPushButton#myup:hover,
QPushButton#myup:pressed
{
background-image: url(:/skin/pic/morebtn_up_hover.png);
color:#F0103C;
}


QPushButton#myup::menu-indicator
{
    image: none;
}

3.带有下箭头的按钮

1)利用特殊符号实现

代码:

    m_font = QFont("Arial", 12);//字体在qss中有
    m_font.setPixelSize(12);

    QFontMetrics fm(m_font);

    QString strText = "全部板块⏷";
    int nWidth = fm.boundingRect(strText).width();
    int nWidth2 =fm.width(strText)+20;

    m_downArrowBtn1 = new QPushButton(strText, this);
    m_downArrowBtn1->setFont(m_font);
    m_downArrowBtn1->setFixedSize(nWidth2,22);
    m_downArrowBtn1->move(10,90);

2)利用图片实现

代码:

    m_font = QFont("Arial", 12);//字体在qss中有
    m_font.setPixelSize(12);

    QFontMetrics fm(m_font);

    strText = "全部板块";
    int picWidth = 6;
    int nGap = 5;

    nWidth = fm.width(strText) + nGap + picWidth;

    m_downArrowBtn2 = new QPushButton(strText, this);
    m_downArrowBtn2->setObjectName("mydown2");
    m_downArrowBtn2->setCheckable(false);
    m_downArrowBtn2->setFixedSize(nWidth,22);
    m_downArrowBtn2->move(10,120);
    connect(m_downArrowBtn2, &QPushButton::clicked, this,&Dialog::onClicked_downArrowBtn2);

qss文件:

QPushButton#mydown2
{
border:none;
background-color:rgb(0,255,0);
background-image: url(:/skin/pic/arrow_dow_normal.png);
background-origin: content;
background-position: right;
background-repeat: no-repeat;

font-size:12px;
font-family:"Arial";
color:#666666;
text-align:left ;
padding-top: 0px;
padding-bottom:0px;
padding-left:0px;
padding-right: 0px;

}

QPushButton#mydown2:hover,
QPushButton#mydown2:pressed
{
background-image: url(:/skin/pic/arrow_dow_hover.png);
color:#F0103C;
}

QPushButton#mymore::menu-indicator
{
    image: none;
}

3)利用setMenu,和属性menu-indicator

代码:

    m_menu3 = new QMenu(this);
    connect(m_menu3, &QMenu::triggered, this, &Dialog::slotMenuTriggered_downArrowBtn3);
    QAction *action1 = m_menu3->addAction("11111");
    QAction *action2 = m_menu3->addAction("22222");
    QAction *action3 = m_menu3->addAction("33333");
    QAction *action4 = m_menu3->addAction("44444");

    action1->setData(10);
    action2->setData(11);
    action3->setData(12);
    action4->setData(13);

    m_downArrowBtn3 = new QPushButton(strText, this);
    m_downArrowBtn3->setObjectName("mydonw3");
    m_downArrowBtn3->setCheckable(false);
    m_downArrowBtn3->setFixedSize(nWidth,22);
    m_downArrowBtn3->setMenu(m_menu3);//这个需要设置,设置后自动会出现下三角,如果不设置,就不会出现下三角
    m_downArrowBtn3->move(10,150);

qss文件:

QPushButton#mydonw3
{
border:none;
background-color:transparent;
font-size:12px;
font-family:"Arial";
color:#666666;
padding-top: 0px;
padding-bottom:0px;
padding-left:0;
padding-right: 0px;

}

QPushButton#mydonw3:hover,
QPushButton#mydonw3:pressed
{
color:#F0103C;
}

QPushButton#mydonw3::menu-indicator
{
    image: url(:/skin/pic/arrow_dow_normal.png);
    subcontrol-position: right center;
    subcontrol-origin: padding;
    right: 2px;
}


QPushButton#mydonw3::menu-indicator:hover,
QPushButton#mydonw3::menu-indicator:pressed
{
    image: url(:/skin/pic/arrow_dow_hover.png);
}

4.带有下箭头的按钮:按钮和箭头两部分分别响应

代码1:qmymenubutton.h

#ifndef QMYMENUBUTTON_H
#define QMYMENUBUTTON_H

#include <QPushButton>
#include <QObject>
#include <QMenu>
#include <QWidget>

#include <vector>

//struct tagMenuBtnItem
//{
//  int nMenuId;
//  QString strMenuText;
//};

class QMyMenuButton : public QPushButton
{
    Q_OBJECT

public:
    QMyMenuButton(QString strText, QWidget *parent);
    virtual ~QMyMenuButton();

    void setButtonId(int nBtnId);

    void setSupportMenu(bool bMenu);

signals:
    void signalBtnClicked(int);
    void signalBtnRightArrowClicked(int);

protected:
    void mouseReleaseEvent(QMouseEvent *e) override;

private:
    int m_nBtnId = -1;

    bool m_bSupportMenu = false;
    //QMenu *m_pMenu = nullptr;

};

#endif // QMYMENUBUTTON_H

代码2:qmymenubutton.cpp

#include "qmymenubutton.h"
#include <QMouseEvent>
#include <QAction>

QMyMenuButton::QMyMenuButton(QString strText, QWidget *parent)
    : QPushButton(strText, parent)
{

}

QMyMenuButton::~QMyMenuButton()
{

}

void QMyMenuButton::setButtonId(int nBtnId)
{
    m_nBtnId = nBtnId;

}

void QMyMenuButton::setSupportMenu(bool bMenu)
{
    m_bSupportMenu = bMenu;

    //m_pMenu = new QMenu(this);

}

//void QMyMenuButton::setMenuData()
//{
//    //测试
//    QAction *action1 = m_pMenu->addAction("11111");
//    QAction *action2 = m_pMenu->addAction("22222");
//    QAction *action3 = m_pMenu->addAction("33333");
//    QAction *action4 = m_pMenu->addAction("44444");


//}

void QMyMenuButton::mouseReleaseEvent(QMouseEvent *e)
{
    if(m_bSupportMenu)
    {
        QPoint pos = e->pos();

        int picWidth = 8;

        QRect rect = this->rect();
        int totoalWidth = rect.width();

        QRect rect1 = rect;
        rect1.setWidth(totoalWidth - picWidth-2);

        QRect rect2 = rect;
        rect2.setLeft(rect1.right());

        if(rect1.contains(pos))
        {
            emit signalBtnClicked(m_nBtnId);
        }
        else if(rect2.contains(pos))
        {
            emit signalBtnRightArrowClicked(m_nBtnId);
        }
    }
    else
    {
        emit signalBtnClicked(m_nBtnId);
    }
}

代码3:使用

    strText = "全部板块";
    int btnPicWidth = 6;
    int btnInternal = 2;
    int width = fm.width(strText) + btnInternal + btnPicWidth;
    int height = 20;

    //正常情况
    m_myMenuButtonBtn1 = new QMyMenuButton(strText, this);

    m_myMenuButtonBtn1->setObjectName("mymenuBtnNormal");
    m_myMenuButtonBtn1->setFixedSize(width, height);
    m_myMenuButtonBtn1->setButtonId(10000);
    m_myMenuButtonBtn1->move(18,180);
    connect(m_myMenuButtonBtn1, &QMyMenuButton::signalBtnClicked, this, &Dialog::slotBtnClicked_myMenuButton);

    //分开情况
    m_myMenuButtonBtn2 = new QMyMenuButton(strText, this);
    m_myMenuButtonBtn2->setObjectName("mymenuBtnArrow");
    m_myMenuButtonBtn2->setFixedSize(width, height);
    m_myMenuButtonBtn2->setButtonId(20000);
    m_myMenuButtonBtn2->setSupportMenu(true);//带箭头
    m_myMenuButtonBtn2->move(18,210);
    connect(m_myMenuButtonBtn2, &QMyMenuButton::signalBtnClicked, this, &Dialog::slotBtnClicked_myMenuButton);
    connect(m_myMenuButtonBtn2, &QMyMenuButton::signalBtnRightArrowClicked, this, &Dialog::slotBtnRightArrowClicked_myMenuButton);

    m_menu4 = new QMenu(this);
    connect(m_menu4, &QMenu::triggered, this, &Dialog::slotMenuTriggered_myMenuButton);
void Dialog::slotBtnClicked_myMenuButton(int id)
{
    int aa = 0;
    aa++;

}

void Dialog::slotBtnRightArrowClicked_myMenuButton(int id)
{
    if(id == 10000)
    {
        int aa = 0;
        aa++;

    }
    else if(id == 20000)
    {
        m_menu4->clear();

        QAction *action1 = m_menu4->addAction("11111");
        QAction *action2 = m_menu4->addAction("22222");
        QAction *action3 = m_menu4->addAction("33333");
        QAction *action4 = m_menu4->addAction("44444");

        action1->setData(10);
        action2->setData(11);
        action3->setData(12);
        action4->setData(13);

        QPoint pt = m_myMenuButtonBtn2->rect().bottomLeft();
        pt = m_myMenuButtonBtn2->mapToGlobal(pt);

        m_menu4->move(pt);
        m_menu4->show();

    }

}

qss文件:

/*********5.mymenuBtnNormal******************/
QMyMenuButton#mymenuBtnNormal
{
background-color:rgb(0,255,0);
font-size:12px;
font-family:"Arial";
color:#666666;
padding-top: 0px;
padding-bottom:0px;
padding-left:0px;
padding-right: 0px;
border:none;
}

QMyMenuButton#mymenuBtnNormal:hover
{
color:#F0103C;
}

/*
QMyMenuButton#mymenuBtnNormal:pressed
{
color:#F0103C;
}
*/


/************6.mymenuBtnArrow***************/
QMyMenuButton#mymenuBtnArrow
{
background-color:rgb(0,255,0);
background-image: url(:/skin/pic/arrow_dow_normal.png);
background-origin: content;
background-position: right;
background-repeat: no-repeat;

font-size:12px;
font-family:"Arial";
color:#666666;
text-align:left ;
padding-top: 0px;
padding-bottom:0px;
padding-left:0px;
padding-right: 0px;
border:none;
}

QMyMenuButton#mymenuBtnArrow:hover
{
background-image: url(:/skin/pic/arrow_dow_hover.png);
color:#F0103C;
}

/*
QMyMenuButton#mymenuBtnArrow:pressed
{
background-image: url(:/skin/pic/morebtn_up_hover.png);
color:#F0103C;
}
*/


QMyMenuButton#mymenuBtnArrow::menu-indicator
{
    image: none;
}

5.跟图片大小一样的按钮、跟图片大小一样的按钮

代码:

    //5.跟图片大小一样的按钮
    m_picBtn1 = new QPushButton("", this);
    m_picBtn1->setObjectName("mybtn_pic1");
    m_picBtn1->setFixedSize(34,20);
    m_picBtn1->move(5,240);

    //6.跟图片大小不一样的按钮
    m_picBtn2 = new QPushButton("", this);
    m_picBtn2->setCheckable(true);
    m_picBtn2->setObjectName("mybtn_pic2");
    m_picBtn2->setFixedSize(64,40);
    m_picBtn2->move(5,280);

qss文件:

/**********7.mybtn_pic1+mybtn_pic2*******************/
QPushButton#mybtn_pic1
{
background-color:#FFC37C;
background-image: url(:/skin/pic/top_vip.png);
background-origin: content;
background-position: center;
background-repeat: no-repeat;
padding-top: 0px;
padding-bottom:0px;
padding-left:0px;
padding-right: 0px;
border:none;
}

QPushButton#mybtn_pic2
{
background-color:#141414;
background-image: url(:/skin/pic/left_vip_normal.png);
background-origin: content;
background-position: center;
background-repeat: no-repeat;
padding-top: 0px;
padding-bottom:0px;
padding-left:0px;
padding-right: 0px;
border:none;
}


QPushButton#mybtn_pic2:hover
{
background-color:#262626;
background-image: url(:/skin/pic/left_vip_hover.png);
}

QPushButton#mybtn_pic2:checked
{
background-color:#000000;
background-image: url(:/skin/pic/left_vip_check.png);
}

6.文字和图片不在一起的按钮

1)QPushButton实现

代码:

    m_textPicBtn1 = new QPushButton("文字", this);
    m_textPicBtn1->setObjectName("pushButton_9");
    m_textPicBtn1->setFixedSize(62,49);
    m_textPicBtn1->move(5,350);

    m_textPicBtn2 = new QPushButton("文字", this);
    m_textPicBtn2->setObjectName("pushButton_10");
    m_textPicBtn2->setFixedSize(62,49);
    m_textPicBtn2->move(105,350);

    m_textPicBtn3 = new QPushButton("文字", this);
    m_textPicBtn3->setObjectName("pushButton_11");
    m_textPicBtn3->setFixedSize(62,49);
    m_textPicBtn3->move(205,350);

    m_textPicBtn4 = new QPushButton("文字", this);
    m_textPicBtn4->setObjectName("pushButton_12");
    m_textPicBtn4->setFixedSize(62,49);
    m_textPicBtn4->move(305,350);

    m_textPicBtn5 = new QPushButton("文字", this);
    m_textPicBtn5->setObjectName("pushButton_13");
    m_textPicBtn5->setFixedSize(62,49);
    m_textPicBtn5->move(405,350);

qss文件:

/***图片在左*****/
QPushButton#pushButton_9 {
    border:none;
    background-color: #60C171;
    background-image: url(:/skin/pic/hq.png);
    background-origin: content;
    background-position: left;
    background-repeat: no-repeat;

    text-align: right;
    padding-left: 2px;
    padding-right: 2px;
    font-size: 12px;
    color: #FFFFFF;
}


/***图片在右*****/
QPushButton#pushButton_10 {
    border:none;
    background-color: #60C171;
    background-image: url(:/skin/pic/hq.png);
    background-origin: content;
    background-position: right;
    background-repeat: no-repeat;

    text-align: left;
    padding-right: 2px;
    padding-left: 2px;
    font-size: 12px;
    color: #FFFFFF;
}

/***图片在上*****/
QPushButton#pushButton_11 {
    border:none;
    background-color: #60C171;
    background-image: url(:/skin/pic/hq.png);
    background-origin: content;
    background-position: top;
    background-repeat: no-repeat;

    text-align: bottom;
    padding-top: 2px;
    padding-bottom: 2px;
    font-size: 12px;
    color: #FFFFFF;
}

/***图片在下*****/
QPushButton#pushButton_12 {
    border:none;
    background-color: #60C171;
    background-image: url(:/skin/pic/hq.png);
    background-origin: content;
    background-position: bottom;
    background-repeat: no-repeat;

    text-align: top;
    padding-top: 2px;
    padding-bottom: 2px;
    font-size: 12px;
    color: #FFFFFF;
}

/*****特殊位置*****/
QPushButton#pushButton_13 {
    border:none;
    background-color: #60C171;
    background-image: url(:/skin/pic/hq.png);
    background-origin: content;
    background-position: right bottom;
    background-repeat: no-repeat;

    text-align: left top;
    padding-left: 2px;
    padding-top: 2px;
    padding-right: 2px;
    padding-bottom: 2px;
    font-size: 12px;
    color: #FFFFFF;
}

2) QToolButton实现

代码:

    m_toolbtn1 = new QToolButton(this);
    m_toolbtn1->setText("文字");
    m_toolbtn1->setIcon(QIcon(":/skin/pic/hq.png"));
    m_toolbtn1->setIconSize(QSize(20,16));
    m_toolbtn1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    m_toolbtn1->setLayoutDirection(Qt::LeftToRight);
    m_toolbtn1->setObjectName("toolButton1");

    m_toolbtn1->setFixedSize(62,49);
    m_toolbtn1->move(5,450);

    m_toolbtn2 = new QToolButton(this);
    m_toolbtn2->setText("文字");
    m_toolbtn2->setIcon(QIcon(":/skin/pic/hq.png"));
    m_toolbtn2->setIconSize(QSize(20,16));
    m_toolbtn2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    m_toolbtn2->setLayoutDirection(Qt::RightToLeft);
    m_toolbtn2->setObjectName("toolButton2");
    m_toolbtn2->setFixedSize(62,49);
    m_toolbtn2->move(105,450);

    m_toolbtn3 = new QToolButton(this);
    m_toolbtn3->setText("文字");
    m_toolbtn3->setIcon(QIcon(":/skin/pic/hq.png"));
    m_toolbtn3->setIconSize(QSize(20,16));
    m_toolbtn3->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    m_toolbtn3->setLayoutDirection(Qt::LeftToRight);
    m_toolbtn3->setObjectName("toolButton3");
    m_toolbtn3->setFixedSize(62,49);
    m_toolbtn3->move(205,450);

    //
    m_toolbtn4 = new QToolButton(this);

    QPixmap pic;
    pic.load(":/skin/pic/hq.png");

    QLabel *iconLabel = new QLabel;
    iconLabel->setAlignment(Qt::AlignCenter);
    iconLabel->setPixmap(pic);

    QLabel *textLabel = new QLabel;
    textLabel->setAlignment(Qt::AlignCenter);
    textLabel->setText("文字");

    QVBoxLayout *myLayout = new QVBoxLayout();
    myLayout->setContentsMargins(0, 0, 0, 0);
    myLayout->setSpacing(0);

    myLayout->addStretch();
    myLayout->addWidget(textLabel);
    myLayout->addSpacing(10);
    myLayout->addWidget(iconLabel);
    myLayout->addStretch();

    m_toolbtn4->setLayout(myLayout);
    m_toolbtn4->setFixedSize(62,49);
    m_toolbtn4->setObjectName("toolButton4");
    m_toolbtn4->move(305,450);

qss文件:

/***图片在左*****/
QToolButton#toolButton1{
    border:none;
    background-color: #60C171;
    font-size: 12px;
    color: #FFFFFF;
    padding-left: 4px;

}

/***图片在右*****/
QToolButton#toolButton2{
border:none;
background-color: #60C171;
font-size: 12px;
color: #FFFFFF;
padding-left: 4px;

}

/***图片在上*****/
QToolButton#toolButton3{
border:none;
background-color: #60C171;
font-size: 12px;
color: #FFFFFF;
padding-top: 4px;

}

/***图片在下*****/
QToolButton#toolButton4{
border:none;
background-color: #60C171;
}

QToolButton#toolButton4 QLabel{
border:none;
background-color: transparent;
font-size: 12px;
color: #FFFFFF;
}

附加源码:QT实战-qt各种按钮实现

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

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

相关文章

MTK主板_小型联发科安卓主板_行业智能终端主板基于联发科方案

MTK安卓主板是一款小巧而高效的科技产品&#xff0c;其尺寸仅为43.4mm x 57.6mm。采用了先进的联发科12nm制程工艺&#xff0c;这款主板搭载四核或八核64位A53架构的CPU&#xff0c;主频高达2.0GHz&#xff0c;不但保证了出色的计算能力&#xff0c;还实现了超低功耗的特点。系…

Web day02 Js Vue Ajax

目录 1.javascript: 1.js的引入方式&#xff1a; 2.js变量 & 数据类型 & 输出语句&#xff1a; 模板字符串&#xff1a; 3.函数 & 自定义对象&#xff1a; 4. json 字符串 & DOM操作&#xff1a; 5. js事件监听&#xff1a; 6.js的模块化导入或者导出&a…

Dify进阶:知识库构建,MinerU安装完成,看看效果

文章目录 最终效果展示MinerU安装成功 最终效果展示 MinerU安装成功 上回说道&#xff0c;MinerU可以将pdf转化为Markdown&#xff0c;这对于大语言模型的知识库构建来说&#xff0c;十分重要。 由于我是windows电脑&#xff0c;使用的安装步骤是&#xff0c;直接从github下载…

皮肤癌检测 6596张图片支持YOLO,COCO,VOC的

关于数据集 使用YOLO、COCO和VOC等算法和数据集可以提高皮肤癌检测的准确性和效率&#xff0c;帮助医生和患者识别和治疗皮肤癌。这里我整理了一下yolov5, yolov7,yolov8,yolov9,yolov11, coco,cov标记的数据集。 数据集分割 6596总图像数 训练组 82&#xff05; …

Vue.js 中 v-for 指令的三种常见用法详解及key、value、id的作用

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;WebStorm 目录 遍历数组 介绍 代码 遍历对象数组 介绍 代码 遍历对象本身 介绍 代码 效果呈现 key、value、id的作用 1. value 2. key 3. id 在 Vue.js 中&#xff0c…

【C语言算法】蛇形方阵 暴力破解之(if函数)

文章目录 1. 问题描述2. 题目分析与代码设计3. 代码实现4. 运行效果 1. 问题描述 在n x n(n≤8)方阵里填入1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;n x n&#xff0c;要求填成蛇形。 列如 n4 时方阵为&#xff1a; 2. 题目分析与代码设计 算法的步骤和分析&…

从覆盖到拼接:优化 onInput 事件的输入

在使用 ElSelect 组件的 onInput 事件时&#xff0c;由于每次输入都触发搜索&#xff0c;导致请求频繁且新搜索结果覆盖了旧结果&#xff0c;无法实现输入数据的累积搜索。我们希望的是&#xff0c;每次搜索能够将新的输入内容与之前的内容拼接显示&#xff0c;从而实现用户的诉…

Flink四大基石之CheckPoint

1、State Vs Checkpoint State:状态,是Flink中某一个Operator在某一个时刻的状态,如maxBy/sum,注意State存的是历史数据/状态,存在内存中。 Checkpoint:快照点, 是Flink中所有有状态的Operator在某一个时刻的State快照信息/存档信息。 一句话概括: Checkpoint就是State的快照…

如何给GitHub的开源项目贡献PR

&#x1f3af;导读&#xff1a;本文详细介绍了如何向开源项目“代码随想录”贡献自己的题解。首先&#xff0c;需要Fork原项目的仓库至个人GitHub账户&#xff0c;然后解决克隆仓库时可能遇到的SSH密钥问题。接着&#xff0c;按照标准流程对本地仓库进行代码或文档的修改&#…

不可分割的整体—系统思考的微妙法则

不可分割的整体——系统思考的微妙法则 作为企业领导者&#xff0c;我们经常需要做出决策&#xff0c;但有时候&#xff0c;我们会忽略一个事实&#xff1a;每个决策都不是孤立的&#xff0c;它背后都是一个复杂系统的一部分。 无论是市场动态、团队协作&#xff0c;还是产品…

layui-vue第三方库表格列事件怎么写

插槽写入列点击事件 <div class"le-table-box" ref"TableBoxRef" :style"{ height: ShowPage ? calc(100% - 60px) : 100% }"><lay-table row-double"dbRowClick" :columns"TableColumn" :data-source"Table…

第一个 C++ 程序 001

1. main 函数 同 c 语言的 main 函数 2. 字符和字符串 在C的 STL 中⼜引⼊了 string 来表⽰字符串&#xff0c;功能更加强⼤&#xff0c;C 语⾔不⽀持&#xff0c;后期会详细介绍。 其他的和 c 语言类似 3. 头文件 和 C 语言中的头文件一样&#xff0c;相当于一个工具箱 不过…

修改插槽样式,el-input 插槽 append 的样式

需缩少插槽 append 的 宽度 方法1、使用内联样式直接修改&#xff0c;指定 width 为 30px <el-input v-model"props.applyBasicInfo.outerApplyId" :disabled"props.operateCommandType input-modify"><template #append><el-button click…

Hot100 - 搜索二维矩阵II

Hot100 - 搜索二维矩阵II 最佳思路&#xff1a; 利用矩阵的特性&#xff0c;针对搜索操作可以从右上角或者左下角开始。通过判断当前位置的元素与目标值的关系&#xff0c;逐步缩小搜索范围&#xff0c;从而达到较高的效率。 从右上角开始&#xff1a;假设矩阵是升序排列的&a…

杂七杂八的网络安全知识

一、信息安全概述# 1.信息与信息安全# 信息与信息技术 信息奠基人&#xff1a;香农&#xff1a;信息是用来消除随机不确定性的东西 信息的定义&#xff1a;信息是有意义的数据&#xff0c;是一种要适当保护的资产。数据经过加工处理之后&#xff0c;就成为信息。而信息需要…

Vision Transformer(vit)的Embedding层结构

代码&#xff1a; class PatchEmbed(nn.Module):"""2D Image to Patch Embedding"""def __init__(self, img_size224, patch_size16, in_c3, embed_dim768, norm_layerNone):super().__init__()img_size (img_size, img_size) #图像尺寸默认22…

Spring Boot 实战:基于 Validation 注解实现分层数据校验与校验异常拦截器统一返回处理

1. 概述 本文介绍了在spring boot框架下&#xff0c;使用validation数据校验注解&#xff0c;针对不同请求链接的前端传参数据&#xff0c;进行分层视图对象的校验&#xff0c;并通过配置全局异常处理器捕获传参校验失败异常&#xff0c;自动返回校验出错的异常数据。 2. 依赖…

Linux查看网络基础命令

文章目录 Linux网络基础命令1. ifconfig 和 ip一、ifconfig命令二、ip命令 2. ss命令一、基本用法二、常用选项三、输出信息四、使用示例 3. sar 命令一、使用sar查看网络使用情况 4. ping 命令一、基本用法二、常用选项三、输出结果四、使用示例 Linux网络基础命令 1. ifconf…

Python酷库之旅-第三方库Pandas(245)

目录 一、用法精讲 1156、pandas.tseries.offsets.MonthEnd.is_month_start方法 1156-1、语法 1156-2、参数 1156-3、功能 1156-4、返回值 1156-5、说明 1156-6、用法 1156-6-1、数据准备 1156-6-2、代码示例 1156-6-3、结果输出 1157、pandas.tseries.offsets.Mon…

DAMODEL丹摩|Faster-Rcnn训练与部署实战

本文仅做测评体验&#xff0c;非广告。 文章目录 1. 丹摩介绍2. Faster-Rcnn介绍3. 准备3. 1 丹摩平台准备实例 3. 2 Faster-Rcnn4. 部署开始5. 训练5. 资源释放6. 结语 1. 丹摩介绍 详细介绍请看&#xff1a;丹摩平台介绍。 丹摩智算平台&#xff08;DAMODEL&#xff09;是…