MenuToolButton自绘控件,带下拉框的QToolButton,附源码

MenuToolButton自绘控件,带下拉框的QToolButton

效果

在这里插入图片描述

下拉样式可自定义
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

跟随QToolButton的Qt::ToolButtonStyle属性改变图标文字样式
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

使用示例

正常UI文件创建QToolButton然后提升,或者直接代码创建都可以。
在这里插入图片描述

    // 创建一个 QList 对象来存储 QPixmap 类型的图像列表
    QList<QPixmap> pixmaps;
    // 创建一个 QStringList 对象来存储文本列表
    QStringList texts;
    
    // 将图像添加到 QPixmap 对象列表中,这里添加了两张图片
    pixmaps << QPixmap("://images/gif.png")
            << QPixmap("://images/csv.png")
            << QPixmap("://images/pdf.png");
    // 将文本添加到QStringList对象列表中,这里添加了两个文本项
    texts   << "Import GIF"
            << "Import CSV"
            << "Import PDF";
    // 获取用户界面中名为toolButton的指针,并设置其图标大小为42x42像素
    ui->toolButton->setIconSize(QSize(42, 42));
    // 获取用户界面中名为toolButton的指针,并设置其文字在图标的下方
    ui->toolButton->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonTextUnderIcon);
    // 设置名为toolButton的按钮的图标列表,使用之前创建的 pixmaps 和 texts 列表
    ui->toolButton->setList(pixmaps, texts);
    // 设置名为toolButton的按钮的当前选中项索引为0,表示默认选中列表中的第一个项
    ui->toolButton->setCurrentItemIndex(0);
    // 设置名为toolButton的按钮的点击切换行为为true,即点击时点击时切换主按钮状态
    ui->toolButton->setClickToSwitch(true);
    // 设置名为toolButton的按钮的点击切换发射信号false,即点击时点击时发射点击信号
    ui->toolButton->setClickToSwitchWithEmit(true);
    // 设置名为toolButton的按钮的弹出区域可见性为true,即在显示弹出区域
    ui->toolButton->setPopAreaVisible(true);
    // 设置名为toolButton的按钮的弹出区域图片为://images/arrow.png,用于指示弹出区域
    ui->toolButton->setPopAreaPixmap(QPixmap("://images/arrow.png"));
    // 设置名为toolButton的按钮的弹出区域样式为MenuToolButton::PopAreaStyle::kToolButtonCornerRight,表示弹出区域位于按钮的右下角
    ui->toolButton->setPopAreaStyle(MenuToolButton::PopAreaStyle::kToolButtonCornerRight);

    // 建立信号槽连接,当菜单工具按钮被点击时,发射clicked信号,由当前类接收
    connect(ui->toolButton, &MenuToolButton::menuToolButton_clicked, this, [=](int i){
        // 当按钮被点击时,打印出传递的索引值i
        qDebug() << i << texts.at(i);
    });

源码

CSDN 资源 https://download.csdn.net/download/weixin_43807244/89552106

Github 链接
https://github.com/sorrowfeng/MenuToolButton

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 21:36:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 21:36:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 21:36:02       57 阅读
  4. Python语言-面向对象

    2024-07-19 21:36:02       68 阅读

热门阅读

  1. 聊聊Nodejs

    2024-07-19 21:36:02       21 阅读
  2. k8s二次开发-kubebuiler一键式生成deployment,svc,ingress

    2024-07-19 21:36:02       14 阅读
  3. k8s系列问题:[ERROR Port-10250]: Port 10250 is in use

    2024-07-19 21:36:02       14 阅读
  4. AI驱动的漏洞检测

    2024-07-19 21:36:02       20 阅读
  5. 一个简单的springboot应用搭建过程

    2024-07-19 21:36:02       16 阅读
  6. POST请求查询参数神奇失效的一次神奇bug之旅

    2024-07-19 21:36:02       15 阅读
  7. 智能家居和智能家电有什么区别?

    2024-07-19 21:36:02       20 阅读
  8. Leetcode 9. 回文数

    2024-07-19 21:36:02       20 阅读
  9. final字段总结

    2024-07-19 21:36:02       14 阅读