QActionGroup的妙用

QActionGroup - setExclusive(互斥) 阅读详情

   在Qt中,有时我们经常要处理这样一种情况:在任何时间点,多个QAction只能有一个是激活的。遇到这种情况,我们通常是自己编码,通常信号-槽的连接来实现这类功能。殊不知,在Qt中有一个类,它能帮助我们自动实现这项功能,它就是QActionGroup。

   QActionGroup类把一组操作项(actions)组合在一起。

   以下是来自例子 Menus 中的一段示例代码:

   

     alignmentGroup = new QActionGroup(this);
     alignmentGroup->addAction(leftAlignAct);
     alignmentGroup->addAction(rightAlignAct);
     alignmentGroup->addAction(justifyAct);
     alignmentGroup->addAction(centerAct);
     leftAlignAct->setChecked(true);

  QActionGroup类的功能很简单。

 QActionGroup ( QObject * parent )
 ~QActionGroup ()
QList<QAction *>actions () const
QAction *addAction ( QAction * action )  // 向组中添加一个已经存在的QAction
QAction *addAction ( const QString & text )
QAction *addAction ( const QIcon & icon, const QString & text )
QAction *checkedAction () const  // 返回被checked的QAction 
boolisEnabled () const
boolisExclusive () const
boolisVisible () const
voidremoveAction ( QAction * action ) // 删除组中的一个QAction

Public Slots

voidsetDisabled ( bool b )
voidsetEnabled ( bool )
voidsetExclusive ( bool )
voidsetVisible ( bool )
以上几个槽函数很好理解。

Signals

voidhovered ( QAction * action )  //This signal is emitted when the given action in the action group ishighlighted by the user;  
voidtriggered ( QAction * action ) // This signal is emitted when the given action in the action group isactivated by the user;



使用QActionGroup类管理动作的使用 在上面的示例中,我们创建了一个主窗口,并在窗口的菜单栏上添加了一个名为"Options"的菜单。QActionGroup类是Qt框架中的一个重要类,用于管理一组相关的动作。通过使用QActionGroup类,可以简化动作的管理和操作,并提供良好的用户体验。QActionGroup类是QObject类的子类,可以通过将多个QAction对象添加到QActionGroup中来创建一个动作组。当用户选择某个选项时,QActionGroup会自动管理动作的选中状态,确保同时只有一个动作被选中。 阅读详情

相关推荐

QT中QActionGroup类的用法

这意味着,在该QActionGroup对象中,只允许一个QAction对象被选中。在上面的代码中,我们首先创建了一个QActionGroup对象,然后将需要组合的QAction对象action1、action2和action3添加到该对象中。在上面的代码中,我们通过调用checkedAction()函数来获取选中的QAction对象,并将其保存在checkedAction变量中。在上面的代码中,我们创建了一个MyWidget类,该类包含三个QAction对象和一个QActionGroup对象。

ByteNinja的博客 388

QActionGroup类详解

       QActionGroup类将actions分组。        在某些情况下将QAction分组是十分有用的。例如,如果你有一个Left Align的action,一个Right Align的action,一个Justify的action,以及一个Center action,在统一时刻所有这些actions只能有一个被激活。一种简便的做法就是将这些actions以分组的方式组织。  ...

冷月醉雪的博客 1万+

从理论到实践:使用Sigrity SystemSI完成DDR4信号完整性仿真全流程解析

本文详细解析了使用Sigrity SystemSI完成DDR4信号完整性仿真的全流程,从核心挑战到实战操作。文章深入探讨了DDR4信号完整性问题,介绍了SystemSI工具链的演进与分工,并提供了从前期准备到高级技巧的详细指南,帮助工程师有效解决DDR4设计中的信号完整性问题。

weixin_30505225的博客 510

详解QActionGroup类的使用

主要用于实现互斥选择(即单选)或多选(即复选)的行为,特别是在菜单、工具栏或上下文菜单中,当存在一系列相互排斥或相关联的操作选项时,使用。的非独占模式(默认状态),允许多个动作同时处于选中状态,类似复选框(check box)的行为。,可以确保同一时间内只有一个动作处于选中状态,类似单选按钮(radio button)的行为。设置为互斥选择模式,每次只能有一个颜色被选中,选择新的颜色会自动取消之前的选择。信号,分别在动作被触发(如点击菜单项)和鼠标悬停时发射,便于集中处理相关动作的行为。

简介 2309

别再花钱买商业软件了!这4款免费DIC工具,从散斑生成到应变分析全搞定

本文介绍了4款免费开源的DIC(数字图像相关技术)工具,涵盖从散斑生成到应变分析的全流程,帮助用户零成本构建专业级DIC工作流。这些工具在精度、算法透明度和生态整合方面具有优势,适用于材料力学和实验力学研究,可替代昂贵的商业软件。

weixin_42525369的博客 168

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

果果爱腰果的博客 849

QActionGroup类使用

QActionGroup类使用

danshiming的博客 2127

手把手教你用Simulink搭建IEEE33节点配电网模型(附赠两本电力系统书籍)

本文详细介绍了如何使用Simulink搭建IEEE33节点配电网模型,涵盖从基础配置到高级应用的完整流程。通过MATLAB脚本自动化参数注入、监测系统部署和典型应用场景实战,帮助读者快速掌握配电仿真模型的核心技术。附赠两本电力系统经典书籍资源,助力深入学习与研究。

weixin_29073241的博客 248

QAction、QWidgetAction、QActionGroup

QAction 一、描述 在应用程序中,可以通过菜单、工具栏按钮和键盘快捷键调用许多常用命令。由于用户希望每个命令都以相同的方式执行,因此无论使用何种用户界面,将每个命令表示为一个动作是很有用的。 二、类型成员 1、enum QAction::ActionEvent:调用 QAction::activate() 时使用此枚举类型。 Trigger:发出 QAction::triggered() 信号。 Hover:发出 QAction::hovered() 信号。 2、enum QAction:

友善啊,朋友的博客 2982

SpotBugs使用

spotbugs命令行参数解析

javajingling的专栏 2947

微信小程序:errno: 600001, errMsg: “uploadFile:fail errcode:-101 cronet_error_code:-10001 error_msg:net::E

微信小程序报错uploadFile:fail errcode:-101 cronet_error_code:-10001 error_msg:net::ERR_CONNECTION_RESET, custum ip is invalid, didn't find user's ip,wx.uploadFile errno: 600001 errcode:-101 ?微信小程序wx.uploadFile错误,wx.uploadFile 在真机上报下面的错误,调试工具里没有问题,其它接口在真机/调试工具都正常,

✅ 精选推荐文章 4258

【QT】QActionGroup & QButtonGroup

本文分享QT中QActionGroup & QButtonGroup,希望对各位小伙伴有所帮助!

qq_40041064的博客 1070

LE AUDIO---Volume Control Service

LE AUDIO---Volume Control Service

weixin_42162924的博客 163

QActionGroup互斥不生效的问题

QActionGroup互斥不生效的问题 问题描述 我有一个单实例的QAction的集合actions_ 然后传入不同的QToolbar进行添加到不同的QToolbar实例中。其中使用到了QActionGroup将其中的单个QAction进行互斥的处理。当创建了多个Qtoolbar实例后,释放了其中一个实例,其他QToolbar的QActionGroup互斥就不生效了。 之前的实现方式 action_group_ = new QActionGroup(toolbar_); t

zxy5691419的专栏 1007

FM1288回声消除芯片调试方案 - 综述

专栏文章概览

优快云mianfeixiazai001的博客 1714

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

qt 工具栏只能一个按钮按下 QActionGroup

Qt在线文档地址: https://doc.qt.io/qt-5/qactiongroup.html 此为官方文档的摘抄,笔者无版权。 使用QActionGroup就会使得加入QActionGroup的QAction只有一个被按下,同样的用法的还有QButtonGroup Detailed Description In some situations it is useful to...

lxj362343的博客 1352

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Qt5.9中类QActionGroup用法

本文主要总结类QActionGroup的用法。在Qt5.9中类QActionGroup的用法跟类QButtonGroup用法几乎一模一样,只是在QActionGroup实例时,需要在后面加一个this指针指定父类对象,即QActionGroup *actionGroup = new QActionGroup(this)。 其中,类QButtonGroup的用法,可参考博主之前写的几篇博客: h...

净无邪博客 2715

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

QActionGroup Class

Header:#include < QActionGroup > qmake:QT += widgets Inherits:QObject

weixin_43446462的博客 406

QActionGroup,QAction

.

陌上人如玉,公子世无双。 303

C++/Qt中QActionGroup类用法

QActionGroup 提供了一种高效管理相关动作的方式,尤其适用于需要互斥选择的场景。通过统一的状态控制和信号机制,开发者可以简化代码并提升用户体验。

weixin_45805339的博客 759

QActionGroup、QToolBar的使用

QActionGroup、QToolBar的使用(完整例子)

weixin_40301728的博客 1061

窗体部件之QActionGroup

如果要实现action的互斥效果,可以用QActionGroup的addAction方法,并且前提设置action的checkable属性为true。action的本质是toolbutton,可以用setToolButtonStyle设置文本环绕方式。

Y673582465的专栏 1166

QButtonGroup和QActionGroup的简单小小使用

1、将在界面上布局好的buttons(并设置checkable属性为true)通过void QButtonGroup::addButton(QAbstractButton *button,int id)添加到QButtonGroup(并设置execlusive的属性为true:默认属性值为true)中,即可将添加到QButtonGroup中的buttons设置为互斥(即添加QButtonGroup...

qq_22343907的博客 958
上一篇: 在Qt中如何使用QtDesigner创建的UI文件(二)
下一篇: 第一次使用GitHub
e5Max
博客等级 码龄14年 145粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值