第五篇:其他窗口部件 QAbstractButton

QAbstractButton

QAbstractButton 类是按钮部件的抽象基类,提供了按钮的通用功能。它的子类包括标准按钮 QPushButton、工具按钮 QToolButton、复选框 QCheckBox和单选按钮 QRadioButton 等。

QPushButton

QPushButton 提供了创建交互按钮的基本功能。它可以包含文本、图标等,并能够发射各种信号,使得开发者可以轻松地实现按钮的交互行为。

#include <QApplication>
#include <QPushButton>
#include <QMessageBox>
#include <QDebug>int main(int argc, char *argv[])
{QApplication a(argc, argv);QPushButton btn;// 设置文本btn.setText("按钮");btn.show();// 连接信号槽点击后弹出对话框QObject::connect(&btn, &QPushButton::clicked, []() {QMessageBox::information(nullptr, "Clicked", "button clicked!");});return a.exec();
}

在这里插入图片描述

QToolButton

QToolButton 是一种特殊的按钮,可以快速访问特定的命令或选项。与普通的命令按钮不同,工具按钮通常不显示文本标签(不代表不能),而是显示图标。当使用 QToolBar::addAction() 创建新的 QAction 实例或使用 QToolBar::addActions() 将现有操作添加到工具栏时,通常使用 QToolButton。

#include <QApplication>
#include <QHBoxLayout>
#include <QToolButton>
#include <QMenu>int main(int argc, char *argv[])
{QApplication a(argc, argv);QWidget w;QToolButton btn1;// 设置箭头类型btn1.setArrowType(Qt::DownArrow);// 设置按钮是否自动突出,默认为 falsebtn1.setAutoRaise(true);QToolButton btn2;btn2.setArrowType(Qt::LeftArrow);QToolButton btn3;// 设置文本btn3.setText("查看");// 设置图标btn3.setIcon(QIcon("C:\\Users\\yxc\\Pictures\\Camera Roll\\discord_midjourney_9_.png"));// 设置样式btn3.setToolButtonStyle(Qt::ToolButtonTextUnderIcon);QToolButton btn4;// 设置菜单弹出方式(默认QToolButton::DelayedPopup按一会再弹出)btn4.setPopupMode(QToolButton::InstantPopup);// 添加菜单QMenu menu;menu.addAction("剪切");menu.addAction("粘贴");menu.addAction("复制");btn4.setMenu(&menu);QHBoxLayout layout;layout.addWidget(&btn1);layout.addWidget(&btn2);layout.addWidget(&btn3);layout.addWidget(&btn4);w.setLayout(&layout);w.show();return a.exec();
}

在这里插入图片描述

QToolButton 的样式:

常量描述
Qt::ToolButtonIconOnly只显示图标
Qt::ToolButtonTextOnly只显示文本
Qt::ToolButtonTextBesideIcon文本显示在图标旁边
Qt::ToolButtonTextUnderIcon文本显示在图标下方
Qt::ToolButtonFollowStyle根据QStyle::StyleHint格式显示

QCheckBox

QCheckBox 是一个选项按钮,可以打开(选中)或关闭(未选中)。如果复选框被选中,再次点击这个按钮选中状态会被取消。。复选框通常会向用户提供“多选多”的选择。然而复选框也可以实现“多选一”。例如:QButtonGroup可用于对复选按钮进行逻辑分组(QButtonGroup不提供任何视觉表示),从而允许使用独占复选框。

下图进一步说明了独占和非独占复选框之间的区别(将两种复选框放在了两个QGroupBox容器中):

在这里插入图片描述

实现独占需要设置 autoExclusive 属性为 true。

在这里插入图片描述

Qt::CheckState类型:

常量描述
Qt::Unchecked未选中
Qt::PartiallyChecked半选中
Qt::Checked选中

QCheckBox 默认是两种选中状态,选中和未选中,setTristate(true)用来开启半选中状态。

#include <QApplication>
#include <QWidget>
#include <QCheckBox>
#include <QVBoxLayout>int main(int argc, char *argv[])
{QApplication a(argc, argv);QWidget w;// 垂直布局(暂时先使用,后面会仔细学习)QVBoxLayout layout(&w);// 添加复选框QCheckBox chkBox1;chkBox1.setText("语文");QCheckBox chkBox2;chkBox2.setText("数学");chkBox2.setChecked(true);QCheckBox chkBox3;chkBox3.setText("英语");chkBox3.setTristate(true);chkBox3.setCheckState(Qt::PartiallyChecked);layout.addWidget(&chkBox1);layout.addWidget(&chkBox2);layout.addWidget(&chkBox3);w.show();return a.exec();
}

在这里插入图片描述

QRadioButton

QRadioButton 是一个选项按钮,可以打开(选中)或关闭(未选中)。单选按钮通常会向用户提供“多选一”的选择。如果用户选择了另一个按钮,则先前选择的按钮将关闭。如果单选按钮被选中,再次点击这个按钮选中状态是不能被取消的。这是与 QCheckBox 的不同点

#include <QApplication>#include "widget.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

在这里插入图片描述

运行结果如图所示:

在这里插入图片描述

如果我们使用鼠标点击了某个单选按钮,其他按钮将取消选中。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-ionde(软硬件链接)剖析

概述 文件是存储在硬盘上的&#xff0c;硬盘的最小存储单位叫做扇区sector&#xff0c;每个扇区存储512字节。操作系统读取硬盘的时候&#xff0c;不会一个个扇区地读取&#xff0c;这样效率太低&#xff0c;而是一次性连续读取多个扇区&#xff0c;即一次性读取一个块block。这…

商家转账到零钱开通证明材料怎么办?

商家转账到零钱是什么&#xff1f; 商家转账到零钱是企业付款到零钱的升级版&#xff0c;它的功能是&#xff0c;如果系统需要对用户支付费用&#xff0c;比如发放佣金、提成、退款等&#xff0c;可以直接转账到用户的微信零钱。这个功能在 2022 年 5 月 18 日之前叫做企业付款…

BossCMS RCE

简介 BossCMS是一款基于自主研发PHP框架MySQL架构的内容管理系统&#xff0c;能够满足各类网站开发建设的需求。系统开源、安全、稳定、简洁、易开发、专注为中小型企业及政企单位、个人站长、广大开发者、建站公司提供一套简单好用的网站内容管理系统解决方案。官网提供了大量…

idea 安装免费Ai工具 codeium

目录 概述 ide安装 使用 chat问答 自动写代码 除此外小功能 概述 这已经是我目前用的最好免费的Ai工具了&#xff0c;当然你要是有钱最好还是用点花钱的&#xff0c;比如copilot&#xff0c;他可以在idea全家桶包括vs&#xff0c;还有c/c的vs上运行&#xff0c;还贼强&am…

java数据结构与算法刷题-----LeetCode59. 螺旋矩阵 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 初始&#xff0c;top行执向第一行&#xff0c;bottom行指向最后一…

Spring Cloud可视化智慧工地大数据云平台源码(人、机、料、法、环五大维度)

智慧工地平台是依托物联网、互联网、AI、可视化建立的大数据管理平台&#xff0c;是一种全新的管理模式&#xff0c;能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度&#xff0c;以及施工过程管理的进度、质量、安全三…

OJ常用函数/机试常用STL模板

目录 机试涉及到的算法一、字符串二、vector二、map三、set四、queue五、并查集五、cmath六、读入数据6.1 示例16.2 示例26.3 示例36.4 示例46.5 示例56.6 示例66.7 示例76.8 示例86.9 示例96.10 示例106.11 示例11 七、输入输出八、排序九、数学相关十、大数的表示十一、IDE 机…

Java 应用部署包优化经验分享

背景 最近接手了一个 2018 年的老项目&#xff0c;因为太久远了&#xff0c;功能上的代码不敢乱动&#xff0c;虽然是老项目&#xff0c;但最近一年也在持续加功能&#xff0c;功能不稳定&#xff0c;于是我就进入了救火式改 Bug 的状态。 功能不能妄动&#xff0c;但是这个项…

SwiftUI 框架有哪些主要优势

SwiftUI是苹果公司在2019年推出的一种用于构建用户界面的框架&#xff0c;它使用Swift语言编写&#xff0c;并且与iOS、iPadOS、macOS、watchOS和tvOS等平台兼容。下面简单的看下有哪些主要的优势。 声明式的界面描述 使用声明式编程风格&#xff0c;通过简洁的代码描述用户界…

【已解决】Qt Creator设计模式被禁用不能点的原因及解决方案

Qt Creator 下载地址&#xff08;含历史版本&#xff09;&#xff1a;https://download.qt.io/official_releases/qtcreator/ 症状 Qt Creator 目前最新版为12.0.1&#xff0c;安装后打开.qml文件发现设计工具图标为禁用状态。 原因及解决方案 根据官网材料&#xff08;Qt C…

Vue3前端开发,watch侦听器的深度监听和精确监听

Vue3前端开发,watch侦听器的深度监听和精确监听&#xff01;今天和大家分享的内容是&#xff0c;关于watch的深度侦听和精确监听。 首先看一下&#xff0c;第一个案例&#xff0c;练习的是&#xff0c;深度监听的效果。默认是浅的侦听&#xff0c;是不会触发回调函数的。 <…

DNS寻址过程

用一张图详细的描述DNS寻址的过程&#xff0c;是高级前端进阶的网络篇&#xff1a; 主要是第三步要记仔细就行啦&#xff0c;每一步都要详细的记录下来&#xff0c;总结的脉络如下&#xff1a; 本地DNS缓存本地DNS服务器根域名服务器 顶级域名服务器再次顶级域名服务器权威域名…