返回介绍

QButtonGroup类

发布于 2019-10-04 14:58:33 字数 5860 浏览 1389 评论 0 收藏 0

QButtonGroup窗口部件把QButton窗口部件组织在一个组中。 详情请见……

#include <qbuttongroup.h>

继承了QGroupBox。

被QHButtonGroup和QVButtonGroup继承。

所有成员函数的列表。

公有成员

  • QButtonGroup ( QWidget*parent = 0, constchar*name = 0 )
  • QButtonGroup ( constQString&title, QWidget*parent = 0, constchar*name = 0 )
  • QButtonGroup ( intstrips, Orientationorientation, QWidget*parent = 0, constchar*name = 0 )
  • QButtonGroup ( intstrips, Orientationorientation, constQString&title, QWidget*parent = 0, constchar*name = 0 )
  • bool isExclusive () const
  • bool isRadioButtonExclusive () const
  • virtual void setExclusive ( bool )
  • virtual void setRadioButtonExclusive ( bool )
  • int insert ( QButton*button, intid = -1 )
  • void remove ( QButton*button )
  • QButton * find ( intid ) const
  • int id ( QButton*button ) const
  • int count () const
  • virtual void setButton ( intid )
  • virtual void moveFocus ( intkey )
  • QButton * selected () const

信号

  • void pressed ( intid )
  • void released ( intid )
  • void clicked ( intid )

属性

  • bool exclusive- 按钮组是否互斥
  • bool radioButtonExclusive- 组中的单选按钮是否互斥

详细描述

QButtonGroup窗口部件把QButton窗口部件组织在一个组中。

按钮组窗口部件使处理一组按钮变得很容易。按钮组中的每一个按钮都有一个唯一的标识。当按钮组中的按钮被点击时,按钮组会发射一个带有这个按钮标识的clicked()信号。当你有一个相近的按钮并且你想把它们的clicked()信号连接到一个槽时,上述的信号是按钮组在这方面很有用处。

互斥(exclusive)的按钮组会把所有的切换按钮关闭,除了那个被点击的。按钮组默认是不互斥的。默认情况下,尽管按钮组不是互斥的,但被插入到这个按钮组的所有单选按钮都变为互斥的。(请参考setRadioButtonExclusive()。)

这里有两个使用按钮组的方法:

  • 按钮组是一组按钮的父窗口部件,也就是按钮组是按钮构造函数中的parent参数。按钮被按照它们被创建的顺序分配0、1、2等标识。QButtonGroup可以显示一个框架和一个标题,因为它继承了QGroupBox。
  • 按钮组是一个不可见的窗口部件并且被包含的按钮有其它父窗口部件。一个按钮必须使用一个有标识的insert()来被手工插入到按钮组中。

按钮可以使用remove()从组中被移除。可以使用一个包含给定标识的find()来获得一个按钮的指针。使用id()可以得到一个按钮的标识。按钮可以通过setButton()被设置为打开。count()可以返回组中的按钮数。

也可以参考QButton、QPushButton、QCheckBox、QRadioButton、窗口部件外观和风格、布局管理和组织者。


成员函数文档

QButtonGroup::QButtonGroup ( QWidget*parent = 0, constchar*name = 0 )

构造一个没有标题的按钮组。

parentname参数被传递给QWidget构造函数。

QButtonGroup::QButtonGroup ( constQString&title, QWidget*parent = 0, constchar*name = 0 )

构造一个标题为title的按钮组。

parentname参数被传递给QWidget构造函数。

QButtonGroup::QButtonGroup ( intstrips, Orientationorientation, QWidget*parent = 0, constchar*name = 0 )

构造一个没有标题的按钮组。子窗口部件会被排列在strips列或者行中(依赖orientation)。

parentname参数被传递给QWidget构造函数。

QButtonGroup::QButtonGroup ( intstrips, Orientationorientation, constQString&title, QWidget*parent = 0, constchar*name = 0 )

构造一个标题为title的按钮组。子窗口部件会被排列在strips列或者行中(依赖orientation)。

parentname参数被传递给QWidget构造函数。

void QButtonGroup::clicked ( intid ) [信号]

当组中的按钮被点击时,这个信号被发射。id参数是按钮的标识符。

也可以参考QButton::clicked()和insert()。

实例:drawdemo/drawdemo.cpp和xform/xform.cpp。

int QButtonGroup::count () const

返回组中的按钮数。

QButton* QButtonGroup::find ( intid ) const

找到并返回一个标识为id的按钮的指针。

如果这个按钮没有被找到,返回零。

int QButtonGroup::id ( QButton*button ) const

返回button的标识,或者如果button不是这个组的成员,返回-1。

int QButtonGroup::insert ( QButton*button, intid = -1 )

把标识为idbutton插入到按钮组中。返回按钮的标识。

按钮通常是在被创建的时候把按钮组作为父对象,然后会被自动插入到按钮组中的。所以如果按钮的父对象是这个按钮组的话,就不需要手工插入了。一个例外就是当你想自己定义标识来代替默认的0、1、2等等。

按钮会被指定标识为id或者一个自动生成的标识。它是这样工作的:如果id >= 0,这个标识被指定。如果id == -1(默认),标识等于这个按钮组中的按钮数。如果id是其它负整数,比如-2,一个唯一的标识(这个负整数 <= -2)被生成。没有按钮的标识为-1。

也可以参考find(), remove()和exclusive。

实例:listbox/listbox.cpp和xform/xform.cpp。

bool QButtonGroup::isExclusive () const

如果按钮组互斥,返回真,否则返回假。详细情况请参考“exclusive”属性。

bool QButtonGroup::isRadioButtonExclusive () const

如果组中的单选按钮互斥,返回真,否则返回假。详细情况请参考“radioButtonExclusive”属性。

void QButtonGroup::moveFocus ( intkey ) [虚]

根据key移动键盘焦点,并且如果适当,选中新的焦点项。

除非键盘焦点指向一个按钮组的成员并且key是Key_Up、Key_Down、Key_Left和Key_Right之一,否则这个函数什么都不执行。

void QButtonGroup::pressed ( intid ) [信号]

当组中的按钮被按下(pressed)时,这个信号被发射。id参数是按钮的标识。

void QButtonGroup::released ( intid ) [信号]

当组中的按钮被释放(released)时,这个信号被发射。id参数是按钮的标识。

void QButtonGroup::remove ( QButton*button )

从按钮组中移除button

也可以参考insert()。

QButton* QButtonGroup::selected () const

如果真好有一个切换按钮被选择了,返回它的指针,否则返回0。

void QButtonGroup::setButton ( intid ) [虚]

设置标识为id的按钮为打开,如果这是一个互斥组,组中的所有其它按钮将被设置为关闭。

void QButtonGroup::setExclusive ( bool ) [虚]

设置按钮组是否互斥。详细情况请参考“exclusive”属性。

void QButtonGroup::setRadioButtonExclusive ( bool ) [虚]

设置组中的单选按钮是否互斥。详细情况请参考“radioButtonExclusive”属性。


属性文档

bool exclusive

这个属性保存的是按钮组是否互斥。

如果这个值为真,那么组中的按钮是被切换的,并且如果要取消一个按钮的选择,你必须点击组中的另一个按钮。默认为假。

通过setExclusive()设置属性值并且通过isExclusive()来获得属性值。

bool radioButtonExclusive

这个属性保存的是组中的单选按钮是否互斥。

如果这个属性为真(默认),组中的单选按钮被处理为互斥的。

通过setRadioButtonExclusive()设置属性值并且通过isRadioButtonExclusive()来获得属性值。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文