主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QButton类是按钮窗口部件的抽象基类,提供了按钮所共有的功能。 详情请见……
#include <qbutton.h>
继承了QWidget。
被QCheckBox、QPushButton、QRadioButton和QToolButton继承。
QButton类是按钮窗口部件的抽象基类,提供了按钮所共有的功能。
如果你想创建一个按钮,请使用QPushButton。
QButton类实现了一个抽象按钮,并且让它的子类来指定如何回复用户的行为和如何画按钮。
QButton提供了推动和切换按钮。QRadioButton和QCheckBox类只提供了切换按钮,QPushButton和QToolButton提供了切换按钮和推动按钮。
任何按钮都可以有一个文本的或者像素映射的标签。setText()设置按钮为一个文本按钮并且setPixmap()设置它为一个像素映射按钮。文本/像素映射的使用中需要创建当按钮被取消使用时所需的“失效的”外观。
QButton提供了按钮所要用到的绝大多数状态:
isDown()和isOn()的不同点如下: 当用户点击一个切换按钮并且把它切换为开,按钮首先被按下并且然后被释放变为开状态。当用户再次点击(切换为关),按钮首先移动到被按下状态,然后变为关状态(isOn()和isDown()都为假)。
默认按钮(在很多对话框中被使用的)由QPushButton::setDefault()和QPushButton::setAutoDefault()提供。
QButton提供五个信号:
如果一个文本按钮的文本中有“&”,QButton会创建一个自动快捷键。下面的代码创建一个标签为“Rock & Roll”(c下面有下划线)的推动按钮。这个按钮有一个自动快捷键,Alt+C:
QPushButton *p = new QPushButton( "Ro&ck && Roll", this );
在这个实例中,当用户按下Alt+C时,按钮将会调用animateClick()。
你也可以使用setAccel()函数来设置一个定制的快捷键。这个对于绝大多数像素映射按钮是很有用的,因为它们没有自动快捷键。
QPushButton *p; p->setPixmap( QPixmap("print.png") ); p->setAccel( ALT+Key_F7 );
Qt所提供的所有按钮(QPushButton、QToolButton、QCheckBox和QRadioButton)都能够既显示文本也显示像素映射。
为了继承QButton,你至少不得不重新实现drawButton()(绘制按钮的外形)和drawButtonLabel()(绘制它的文本或像素映射)。通常也被建议重新实现sizeHint(),并且有时也被建议重新实现hitButton()(为了决定一个按钮按下是否在按钮内)。
为了减少闪烁,QButton::paintEvent()设置drawButton()中所要画的一个像素映射。你不用在QButton的子类中重新实现paintEvent(),除非你想接管全部的绘制工作。
也可以参考QButtonGroup和抽象窗口部件类。
这个枚举类型定义了一个切换按钮在任何时候的状态。可能的值如下:
这个枚举类型定义了按钮对一个鼠标/键盘按下可以做什么响应:
如果parent是一个QButtonGroup,这个构造函数将调用QButtonGroup::insert()。
返回这个按钮的相关快捷键。详细情况请参考“accel”属性。
pressed()、released()、clicked()、toggled()和stateChanged()信号在适当的时候被发送。
如果按钮是失效的,这个函数将不做任何事情。
也可以参考accel。
如果autoRepeat生效,返回真,否则返回假。详细情况请参考“autoRepeat”属性。
如果autoResize生效,返回真,否则返回假。详细情况请参考“autoResize”属性。
当按钮被激活时(比如,当鼠标光标在按钮中,按钮首先被按下并且然后被释放),或者当快捷键被按下时,或者animateClick()被调用时,这个信号被发送。如果你调用setDown(),这个信号不被发送。
如果你想把几个按钮连接到同一个槽中,QButtonGroup::clicked()信号可以做这样的工作。
也可以参考pressed()、released()、toggled()、autoRepeat和down。
实例:fonts/simple-qfont-demo/viewer.cpp、listbox/listbox.cpp、network/clientserver/client/client.cpp、network/ftpclient/ftpmainwindow.cpp、richtext/richtext.cpp、t2/main.cpp和t4/main.cpp。
这个虚函数是通过子类的重新实现来绘制真正的按钮。这些重新实现被假定同时在同一点调用drawButtonLabel()。
也可以参考drawButtonLabel()和paintEvent()。
这个虚函数是通过子类的重新实现来绘制真正的按钮。它是由drawButton()调用的。
也可以参考drawButton()和paintEvent()。
如果这个按钮不是任何一个QButtonGroup的成员,这个函数返回0。
也可以参考QButtonGroup。
默认情况下,可点击区域是整个窗口部件。尽管子类可以重新实现它。
如果按钮被按下,返回真,否则返回假。详细情况请参考“down”属性。
如果按钮是排它的,返回真,否则返回假。详细情况请参考“exclusiveToggle”属性。
如果按钮被切换,返回真,否则返回假。详细情况请参考“on”属性。
如果按钮是一个切换按钮,返回真,否则返回假。详细情况请参考“toggleButton”属性。
也可以参考drawButton()和drawButtonLabel()。
从QWidget中重新实现的。
返回按钮中所显示的像素映射。详细情况请参考“pixmap”属性。
实例:network/httpd/httpd.cpp和popup/popup.cpp。
也可以参考pressed()、clicked()和toggled()。
设置按钮的相关快捷键。详细情况请参考“accel”属性。
设置autoRepeat是否生效。详细情况请参考“autoRepeat”属性。
设置autoResize是否生效。详细情况请参考“autoResize”属性。
设置按钮是否被按下。详细情况请参考“down”属性。
当on为真,设置这个按钮的状态为开,否则为关。
也可以参考toggleState。
设置按钮上显示的像素映射。详细情况请参考“pixmap”属性。
设置按钮的状态为s。s可以为Off、NoChange或On。
设置按钮上显示的文本。详细情况请参考“text”属性。
如果b为真,这个按钮变为一个切换按钮,如果b为假,这个按钮变为一个普通按钮。
也可以参考toggleButton。
type可以被设置为SingleShot、Toggle和TriState。
如果按钮是被切换的,返回真,否则返回假。详细情况请参考“toggleState”属性。
这也许是一个用户行为的结果,toggle()槽激活,或者因为setState()或setOn()被调用。
也可以参考clicked()。
返回按钮上所显示的文本。详细情况请参考“text”属性。
也可以参考on、setOn()、toggled()和toggleButton。
返回按钮的切换类型。详细情况请参考“toggleType”属性。
这也许是一个用户行为的结果,toggle()槽被激活,或者因为setOn()被调用。
也可以参考clicked()。
这个属性保存的是按钮相关的快捷键。
如果没有快捷键被设置,这个属性为0。如果你设置这个属性为0,那么任何当前的快捷键都被删除。
使用setAccel()来设置这个属性值并且使用accel()来得到这个属性值。
这个属性保存的是autoRepeat是否生效。
如果autoRepeat生效,那么如果按钮是按下的,clicked()信号会被定期发送。这个属性对切换按钮没有效果。autoRepeat默认是关闭的。
使用setAutoRepeat()来设置这个属性值并且使用autoRepeat()来得到这个属性值。
这个属性保存的是autoResize是否生效。
这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。
如果autoResize生效,那么只要内容发生改变,按钮就会重新定义自己的大小。
使用setAutoResize()来设置这个属性值并且使用autoResize()来得到这个属性值。
这个属性保存的是按钮是否被按下。
如果这个属性为真,按钮就被设置为被按下。如果你设置这个属性为真,信号pressed()和clicked()就不会被发送。这个属性默认为假。
使用setDown()来设置这个属性值并且使用isDown()来得到这个属性值。
这个属性保存的是按钮是否是排它的。
如果这个属性为真并且这个按钮在一个QButtonGroup里,这个按钮只有在其它按钮之一被切换为开的时候,它自己才能被切换为关。这个属性默认为假。
使用isExclusiveToggle()来得到这个属性值。
这个属性保存的是按钮是否被切换。
这个属性只有对于切换按钮才能被设置。
使用isOn()来得到这个属性值。
这个属性保存的是按钮上显示的像素映射。
如果像素映射是单色的(比如,它是一个QBitmap或者它的深度为1)并且没有掩码,这个属性将设置像素映射为它自己的掩码。这样的目的是为了绘制对于切换按钮是很重要的透明位图。
如果没有像素映射被设置,pixmap()返回0。
使用setPixmap()来设置这个属性值并且使用pixmap()来得到这个属性值。
这个属性保存的是按钮上显示的文本。
如果按钮没有文本,这个属性将返回一个零字符串。如果文本中有一个“&”,那么一个使用紧随“&”之后的字母的快捷键将被创建。
没有默认文本。
使用setText()来设置这个属性值并且使用text().来得到这个属性值。
这个属性保存的是按钮是否是切换按钮。
默认值为假。
使用isToggleButton()来得到这个属性值。
这个属性保存的是按钮是否被切换。
如果这个属性被改变,那么它不会导致按钮被重新绘制。
使用state()来得到这个属性值。
这个属性保存的是按钮的切换类型。
默认切换类型是SingleShot。
使用toggleType()来得到这个属性值。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|