Qt5中提供了5种常用的按钮控件。包括:
控件名 |
对应类名 |
描述 |
按钮 |
QPushButton |
通常意义的按钮 |
工具栏按钮 |
QToolButton |
在MainWindow中工具栏中的按钮
扫描二维码关注公众号,回复:
9657311 查看本文章
|
单选按钮 |
QRadioButton |
形状为圈的单选按钮 |
复选按钮 |
QCheckBox |
形状为方框的勾选复选按钮 |
命令链接按钮 |
QCommandLinkButton |
|
QPushButton
通常意义上的按钮。点击按钮可以驱使计算机完成某项动作或回答某个问题。典型的按钮有OK,Apply,Cancel,Yes,No和Help按钮等。一般来说,按钮是一个矩形Widget,在其表面有一个字符串或者图标(icon)显示其功能。
QPushButton *button = new QPushButton("&Download", this);
在上述实例化QPushButton的例子中,可以用“Alt+D”快捷键启动按钮。显示的字符串或者图标可以用构造函数设置也可以用setText() 和 setIcon()函数设置。如果按钮被禁用,则按钮的字符串或图标将变为灰色等禁止使用的效果。
当按钮被鼠标点下或按下快捷键时,将触发一个clicked()信号,通过设计该信号的槽函数可是实现点击按钮要执行的动作。
connect(button, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
QToolButton
QToolButton是应用在工具栏中的功能按钮快速入口。 与普通按钮不同的是,ToolButton通常不显示text,而是显示icon。ToolButton通常在新的QAction创建的时候或者已经存在的QActions被添加到工具栏时生成,也即调用QToolBar::addAction()时。QToolButton支持 auto-raising. 如果是auto-raise 模式,当鼠标指向它时,将会绘制一个3D窗体。这个特征是默认打开的,如果想改变它,调用setAutoRaise()函数。
tool button的icon是 QIcon对象. 这使得我们可以设计不用的pixmaps 类表达disabled 和active状态。 当按钮不可用时用disabled pixmap ,当按钮是auto-raised 状态,鼠标在其上浮动时,显示active pixmap。按钮的显示效果可用setToolButtonStyle() 和 setIconSize()函数实现。
ToolButton还可以以popup menu的形式提供附加选择,课调用setMenu()函数来实现弹出菜单。用setPopupMode()函数来配置带有menu的ToolButton不同的模式。一种是DelayedPopupMode,比如在浏览网页时右键点击回退时弹出的菜单。
QRadioButton
QRadioButton是一种按钮只可以被选择或不选择,一般面向多选一的应用需求。在一组radio buttons中,一次只有一个按钮可以被选中。如果用户选择了另外一个按钮,之前选中的按钮将被释放。Radio buttons默认是互相排斥的,auto-exclusive被使能的前提下,同属于一个父窗体的radio buttons互相排斥。如果你想自己设计参与排斥组合的按钮,则可以通过将radio buttons放进QButtonGroup来实现。
不论按钮是被选中还是不选中,都会发送toggled()信号。连接一个槽函数则可以实现按钮状态发生变化的动作响应。用isChecked()函数来判断按钮是否为选中状态。
和QPushButton一样,radio button也显示文本和小的icon。同样通过setIcon()设置icon,setText设置文本。通过用“&”号指定快捷键,如:
QRadioButton *button = new QRadioButton("Search from the &cursor", this);
上述按钮的快捷键为Alt+c。
QCheckBox
QCheckBox 是一种支持复选的选择按钮。通常被用于打开或关闭某些特征,同时并不影响彼此。
不论checkbox被勾选与否,都会发送stateChanged()信号。可以连接一个槽函数以实现状态发生变化后的操作。也可以使用isChecked()函数判断checkbox是否被选中。这意味着,除了判断被选中与否,QCheckBox还提供了第三个状态“未变化”。如果想使用这个信号,需要使能setTristate(), 然后用 checkState()来参看状态。.
就像QPushButton,checkbox也显示文本和小的icon。同样通过setIcon()设置icon,setText设置文本。通过用“&”号指定快捷键,如:
QCheckBox *checkbox = new QCheckBox("C&ase sensitive", this);
上述例子中,快捷键为Alt+A.
QCommandLinkButton
QCommandLinkButton 是一种Vista style 链接按钮。它的用途类似于单选按钮,用于一组互斥的选项中选择。一般不单独使用,而是作为向导和对话框中单选按钮的替代,即常见的“下一个”。通常会有一个箭头图标,表示按下按键将打开另一个窗口或页面。
Example
可到本人下载频道下载例子,运行结果如下图: