当前位置: 首页 > news >正文

QT6中Commd Link Button,Dialog Button Box,Tool Button 功能与应用

一.QCommandLinkButton (命令链接按钮)

1.简介

QCommandLinkButton 继承自 QPushButton,但它提供了比普通按钮更丰富的视觉外观,主要用于向导(Wizard)或设置对话框中,引导用户进行下一步操作。

2.功能与特点

外观:通常由一个箭头图标、一个标题和一段描述性文本组成。

设计初衷:模仿 Windows Vista/7 及之后系统中的“命令链接”控件,用于在多个互斥选项中选择一项。

交互:单击后通常会执行操作并前进到下一个界面或步骤。

自动独占:在父容器中,QCommandLinkButton 默认是互斥的(类似于单选按钮),选中一个会自动取消选中其他同组的命令链接按钮。

3.代码示例

    //创建命令链接按钮

    QCommandLinkButton *btnBasic = new QCommandLinkButton(

        "&基本安装", // 标题 (支持助记符 &B)

        "安装最常用的组件,推荐大多数用户使用。", // 描述

        this

        );

    btnBasic->setGeometry(50, 100, 300, 60);  //控件绝对位置,长、宽

    QCommandLinkButton *btnCustom = new QCommandLinkButton(

        "&自定义安装",

        "选择要安装的特定组件,适合高级用户。",

        this

        );

    btnCustom->setGeometry(50, 200, 300, 60);  //控件绝对位置,长、宽

    // 连接信号

    QObject::connect(btnBasic, &QCommandLinkButton::clicked, [&]() {

        QMessageBox::information(this, "选择", "您选择了:基本安装");

        // 通常会在这里执行操作,然后关闭当前窗口或打开新窗口

    });

    QObject::connect(btnCustom, &QCommandLinkButton::clicked, [&]() {

        QMessageBox::information(this, "选择", "您选择了:自定义安装");

    });

4.界面

5.典型应用场景:

安装向导:让用户选择安装类型(典型、自定义、最小化)。

设置对话框:在多个互斥的操作选项中进行选择(例如,选择网络配置模式)。

任何需要强调并清晰描述下一步操作的界面。

二.QToolButton (工具按钮)

1.简介

QToolButton 是一种通常出现在工具栏 (QToolBar) 上的特殊按钮,用于提供对常用命令的快速访问。它非常紧凑且高度可定制。

2.功能与特点

紧凑尺寸:通常只显示图标,以节省工具栏空间。

多种显示模式:可以设置为只显示图标、只显示文本、或图文并茂。

弹出菜单:可以关联一个弹出菜单(setMenu()),实现下拉式操作。

箭头样式:可以显示为一个箭头,用于指示方向或展开操作。

自动提升:在工具栏上通常有“自动提升”效果(无边框,鼠标悬停时显示),使其看起来更轻量。

3.代码示例

// 创建一个工具栏

    QToolBar *toolbar = this->addToolBar("主工具栏");

    // 1. 创建简单的工具按钮 (带有图标)

    QToolButton *newButton = new QToolButton();

   // newButton->setIcon(style()->standardIcon(QStyle::SP_FileIcon)); // 使用系统标准图标

    newButton->setText("新建"); // 设置文本(通常在工具提示中显示)

    newButton->setToolTip("新建文件 (Ctrl+N)"); // 设置工具提示

    QObject::connect(newButton, &QToolButton::clicked, []() {

        qDebug() << "新建操作被触发";

        // 执行新建文件操作...

    });

    toolbar->addWidget(newButton);

    // 2. 创建带有菜单的工具按钮

    QToolButton *formatButton = new QToolButton();

    formatButton->setText("格式");

    formatButton->setPopupMode(QToolButton::MenuButtonPopup); // 点击按钮部分执行操作,点击箭头部分显示菜单

    //formatButton->setIcon(style()->standardIcon(QStyle::SP_CommandLink));

    // 创建关联的菜单

    QMenu *formatMenu = new QMenu();

    formatMenu->addAction("粗体");

    formatMenu->addAction("斜体");

    formatMenu->addAction("下划线");

    formatButton->setMenu(formatMenu);

    // 连接按钮本身的点击信号(不是菜单项的)

    QObject::connect(formatButton, &QToolButton::clicked, [formatButton]() {

        qDebug() << "格式按钮被点击,默认操作可能是上一次的格式选项";

        // 这里可以执行一个默认操作,而不是显示菜单

        // 因为 setPopupMode 是 MenuButtonPopup,所以点击按钮本身不会显示菜单

    });

    toolbar->addWidget(formatButton);

    // 3. 创建一个只有箭头的工具按钮 (用于下拉列表)

    QToolButton *arrowButton = new QToolButton();

    arrowButton->setArrowType(Qt::DownArrow);

    arrowButton->setPopupMode(QToolButton::InstantPopup); // 点击立即弹出菜单

    QMenu *arrowMenu = new QMenu();

    arrowMenu->addAction("选项 1");

    arrowMenu->addAction("选项 2");

    arrowButton->setMenu(arrowMenu);

    toolbar->addWidget(arrowButton);

4.界面

5.典型应用场景:

应用程序的工具栏(如文件工具栏、格式工具栏)。

需要节省空间的紧凑布局。

需要将多个相关操作聚合在一个按钮下的情况(如下拉菜单按钮)。

绘图或设计软件中的工具选择板。

三.QDialogButtonBox (对话框按钮盒)

1.简介

QDialogButtonBox 是一个专门用于管理和布局对话框底部标准按钮的容器控件。它确保了按钮在不同平台上都能以符合该平台规范的方式显示(如 OK/Cancel 的顺序)。

2.功能与特点

标准化布局:自动按照平台标准(Windows, macOS, Linux)排列按钮顺序。

预定义标准按钮:内置了多种常用标准按钮(如 Ok, Cancel, Yes, No, Apply, Close 等),无需手动创建。

3.典型应用场景

任何模态或非模态对话框的底部按钮栏。

需要符合不同平台人机界面指南的应用程序。

快速创建标准操作的按钮组。

四.总结

需要引导用户做出描述性选择时,用 QCommandLinkButton。

需要为对话框创建标准底部按钮栏时,用 QDialogButtonBox。

需要在工具栏上放置一个紧凑的、可能带有菜单的命令按钮时,用 QToolButton。

http://www.dtcms.com/a/478526.html

相关文章:

  • asp做网站安全性wordpress 文章 接口
  • 关系型数据库RDBMS与非关系型数据库NoSQL区别
  • 网站建设发布wordpress主题带会员中心
  • 单元测试 vs Main方法调试:何时使用哪种方式?
  • 03--CSS基础(2)
  • Wireshark笔记-从抓包的角度分析几种客户端不能正常获取IP地址的场景
  • 企业 网站 推广wordpress文章状态
  • typescript中infer常见用法
  • 科技赋能塞上农业:宁夏从黄土地到绿硅谷的蝶变
  • 第13讲:深入理解指针(3)——数组与指针的“深度绑定”
  • 基于MATLAB的匈牙利算法实现任务分配
  • Type-C 接口充电兼容设计(针对 5V1A 需求)
  • Anaconda 学习手册记录
  • Python-适用于硬件测试的小工具
  • 第三方软件测评机构:【Locust的性能测试和负载测试】
  • 【Python】列表 元组 字典 文件
  • 简单asp网站深圳做个商城网站设计
  • OpenTelemetry 入门
  • 昆山做网站找哪家好wordpress 算数验证码
  • 网站建设服务费入阿里云域名注册平台
  • 美颜的灵魂:磨皮技术的演进与实现原理详解
  • 自定义半精度浮点数modelsim仿真显示
  • 广东GEO优化哪家专业哪家服务好
  • 【C#】await Task.Delay(100)与Thread.Sleep(100)?
  • 从智能补全到云原生适配:免费IDE DataGrip的技术实践与行业趋势
  • 多摄像头网络压力测试
  • 信息发布网站设计巴中网站建设有限公司
  • 图像处理-opencv(一)
  • 空包网站分站怎么做重庆市工程建筑造价信息网
  • 基于MATLAB的Excel文件批量读取与循环处理