QActionGroup的应用

 C++ GUI Programming with Qt 4一书的第三章第二节讲到了如果要创建多选一性质的动作可使用QActionGroup类,但并没有作详细说明,这里作个简要介绍:

QActionGroup的作用就是将多个相似的动作组合在一起。这里我们假设要对一组文字作对齐操作,有Left Align, Right Align, Just Align, Center Align四个动作。很明显,一次只能使用一种对齐方式,也即只能四选一,也是我们使用QActionGroup,这也是最简单的方法。

alignmentGroup = new QActionGroup(this);

alignmentGroup->addAction(leftAlignAct);
alignmentGroup->addAction(rightAlignAct);
alignmentGroup->addAction(justifyAct);
alignmentGroup->addAction(centerAct);
leftAlignAct->setChecked(true);

利用上面的代码我们创建了一个QActionGroup:alignmentGroup,由于QActionGroup默认为单选模式,同一时间只能选择一个选项。

当其中的选项被选中时,相应的动作发出triggered()信号,这里要注意,虽然此动作存在选与不选两种状态,貌似应该使用toggled()信号,但重新选择确不能实现开关状态间的切换,其实与触发更为接近,应用triggered()。

上面我们已经讲到QActionGroup默认为单选模式,一次只能选择一个选项。如果你想使用多选模式,将每个选项看作开关按纽,则可调用 setExclusive(false)函数进行切换。

本文的例子中我们使用addAction()函数将action添加至actionGroup,但还有一种更为简便的方法,即是在创建动作(action)的时候就将他们作好分组,这样可确保每一个动作均有一个父对象。还有一点必须注意:与单个的动作不同,在将actionGroup添加到控件时,要使用addActions()函数,而不是addAction()函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值