1. QPushButton
功能
按压按钮,用于接受用户点击事件,可显示设定的字符串提示信息,但需要父组件作为容器,多用以执行命令或触发事件
常用函数
- QPushButton::QPushButton(const QString &text,QWidget *parent,const char *name = 0);
构造一个名称为name,父对象为parent并且文本为text的按压按钮。 - void QAbstractButton::setText(const QString &)
设置按钮上显示的文本。 - QString QAbstractButton::text()const
返回按钮上显示的文本。 - void QAbstractButton::pressed()[signal]
当按下按钮时,发射信号。 - void QAbstractButton::clicked()[signal]
当单击按钮时,发射信号。 - void QAbstractButton::released()[signal]
当释放按钮时,发射信号。
2. QRadioButton
功能
单选,用于提供两个或多个互斥选项
常用函数
- QRaidoButton::QRadioButton(const QString &text,QWidget *parent,const char *name = 0)
构造一个名称为name、父对象为parent并且文本为text的单选按钮。 - bool QRadioButton::isChecked()const
返回是否选中单选按钮,选中时返回true,没有选中时返回false。 - void QAbstractButton ::setText(const QString &)
设置组件上显示的文本。 - QString QAbstractButton ::text()const
返回该按钮上显示的文本。 - void QAbstractButton ::stateChanged(int state)[signal]
当更改checked属性值时,将发射信号。 - void QRadioButton::setChecked(bool check)[virtual slot]
设置单选按钮是否被选中为checked。
效果与实例
widget.cpp
#include "widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
group = new QButtonGroup(this);
appleradio = new QRadioButton("apple",this);
appleradio->move(5, 5);
bananaradio = new QRadioButton("banana",this);
bananaradio->move(5, 25);
pearradio = new QRadioButton("pear",this);
pearradio->move(5,50);
group->addButton(appleradio,0);
group->addButton(bananaradio,1);
group->addButton(pearradio,2);
appleradio->setChecked(true);
connect(appleradio,SIGNAL(clicked()),this,SLOT(onRadioClick()));
connect(bananaradio,SIGNAL(clicked()),this,SLOT(onRadioClick()));
connect(pearradio,SIGNAL(clicked()),this,SLOT(onRadioClick()));
}
Widget::~Widget()
{
}
void Widget::onRadioClick()
{
switch (group->checkedId()) {
case 0:
qDebug() << "apple";
break;
case 1:
qDebug() << "banana";
break;
case 2:
qDebug() << "pear";
break;
}
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QButtonGroup>
#include <QRadioButton>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
private:
QButtonGroup *group;
QRadioButton *appleradio;
QRadioButton *bananaradio;
QRadioButton *pearradio;
public slots:
void onRadioClick();
};
#endif // WIDGET_H
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QButtonGroup group;
Widget w;
w.show();
return a.exec();
}
3. QCheckBox
功能
复选框,可提供多选多功能,具有以下状态:checked、unchecked和PartiallyChecked
常用函数
- QCheckBox::QCheckBox(const QString &text,QWidget *parent,const char *name = 0)
构造一个名称为name、父对象为parent并且文本为text的复选框。 - bool QCheckBox::isChecked()const
选中复选框,返回true,否则返回false。 - void QAbstractButton ::setText(const QString &)
设置组件上显示的文本。 - QString QAbstractButton ::text()const
返回组件上显示的文本。 - void QAbstractButton ::stateChange(int state)[signal]
当更改checked属性时,将发射这个信号。 - void QCheckBox::setChecked(bool check)[slot]
设置复选框是否选中,状态为check的值。
效果与实例
main.cpp
#include <QApplication>
#include <QWidget>
#include <QCheckBox>
#include <QVBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QVBoxLayout *vlayout = new QVBoxLayout(&w);
QCheckBox *check1 = new QCheckBox("check1", &w);
QCheckBox *check2 = new QCheckBox("check2", &w);
QCheckBox *check3 = new QCheckBox("check3", &w);
vlayout->addWidget(check1);
vlayout->addWidget(check2);
vlayout->addWidget(check3);
w.setLayout(vlayout);
w.show();
return a.exec();
}
4. QToolButton
功能
一种用于命令或者选项的可以快速访问的按钮,通常显示的是图标,而不是文本标签
常用函数
- QToolButton::QToolButton(QWidget *parent,const char *name = 0)
构造一个名字为name,父对象为parent的ToolButton。 - QToolButton::QToolButton(const QIconset &iconSet,const QString &textLabel,const QString &grouptext,QObject *receiver,const char *slot,QToolBar *parent,const char *name = 0)
构造一个名称为name,父对象为parent(必须为QToolBar)的工具按钮。工具按钮将显示iconSet,工具提示为textLabel,状态条信息为grouptext,同时会将工具按钮链接到receiver对象的槽函数。 - QToolBButton::QToolButton(ArrowType type,QWidget *parent,const char *name = 0)
把工具按钮构造成箭头按钮,type定义了箭头的方向,可用的值有LeftArrow、RightArrow、UpArrow、DownArrow。 - void QToolButton::setAutoRaise(bool enable)
根据参数enable值设置按钮是否可自动浮起。 - void QToolButton::setIcon(const QIconSet &)
设置显示在工具按钮上的图标。 - void QToolButton::setOn(bool enable)[virtual slot]
设置按钮是否为开,enable等于true则设置为开,否则设置为关。 - void QToolButton::setTextLabel(const QString &)[slot]
设置按钮的提示标签。 - QString QToolButton::textLabel()const
返回按钮的提示标签。 - void setToolButtonStyle ( Qt::ToolButtonStyle style )
设置ToolButton的样式,有下列样式:- Qt::ToolButtonIconOnly
只显示图标 - Qt::ToolButtonTextOnly
只显示文字 - Qt::ToolButtonTextBesideIcon
文字显示在图标旁 - Qt::ToolButtonTextUnderIcon
文字显示在图标下 - Qt::ToolButtonFollowStyle
根据QStyle::StyleHint进行设置
- Qt::ToolButtonIconOnly
- void setPopupMode ( ToolButtonPopupMode mode )
设置ToolButton的菜单弹出方式ToolButtonPopupMode,弹出方式如下:- QToolButton::DelayedPopup延迟弹出
- QToolButton::MenuButtonPopup
菜单弹出 - QToolButton::InstantPopup
点击立即弹出
效果与实例
main.cpp
#include <QApplication>
#include <QWidget>
#include <QToolButton>
#include <QMenu>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QToolButton *toolbutton = new QToolButton(&w);
toolbutton->setText("ToolButton");
QMenu *menu = new QMenu();
menu->addMenu("1");
menu->addMenu("2");
menu->addMenu("3");
toolbutton->setToolButtonStyle(Qt::ToolButtonTextOnly);
toolbutton->setPopupMode(QToolButton::InstantPopup);
toolbutton->setMenu(menu);
w.show();
return a.exec();
}
5. QCommandLinkButton
功能
用于在互斥选项中选择其中一项。默认情况下,除描述文本外,还会携带一个箭头图标,用以打开另一个窗口或界面。
常用函数
- QCommandLinkButton::QCommandLinkButton(QWidget *parent = 0)
构造一个父对象为parent的命令链接按钮。 - QCommandLinkButton::QCommandLinkButton(const QString &text,QWidget *parent = 0)
构造一个父对象为parent、文本为text的命令链接按钮。 - QCommandLinkButton::QCommandLinkButton(const QString &text,const QString &description,QWidget *parent = 0)
构造一个父对象为parent、文本为text和描述文本为description的命令链接按钮。 - void QButton::clicked( ) [signal]
当单击该按钮时,发射信号。 - void QButton::pressed( ) [signal]
当按下该按钮时,发射这个信号。 - void QButton::released( ) [signal]
当释放该按钮时,发射这个信号。 - void QButton::setText(const QString &)
设置按钮上显示的文本。 - QString QButton::text( ) cosnt
返回按钮上显示的文本。
6. QDialogButtonBox
功能
快速地布置一组按钮,有水平和垂直样式
常用函数
- QDialogButtonBox::QDialogButtonBox(QWidget *parent = 0)
构造一个按钮盒,父对象为parent。 - QDialogButtonBox::QDialogButtonBox(QT::Orientation orientation,QWidget *parent = 0)
构造一个按钮盒,父对象为parent,排列方向为orientation,并且包含buttons。 - QDialogButtonBox::QDialogButtonBox(StandardButton buttons,QT::Orientation orientation = QT::Horizontal,QWidget *parent = 0)
构造一个按钮盒,父对象为parent,排列方向为orientation。 - void QDialogButtonBox::accepted()[signal]
当单击按钮盒里的定义为AcceptRole和YesRole的按钮时,发射信号。 - void QDialogButtonBox::addButton(QAbstractButton *button,ButtonRole role)
向按钮盒里添加按钮button,定义按钮button的角色为role,如果role是无效的,则不添加按钮,如果按钮已添加,移除并在次添加为新角色。 - QPushButton *QDialogButtonBox::addButton(StandarButton button)
向按钮盒中添加一个标准按钮button,并返回标准按钮。如果按钮无效,不添加,返回0. - QPushButton *QDialogButtonBox::addButton(const QString &text,ButtonRole role)
创建一个按钮的文本为text,以指定角色添加到按钮盒,并返回相应的按钮,如果role是无效的,则不创建,返回0. - void QDialogButtonBox::clear()
清空按钮盒里的所有按钮。 - void QDialogButtonBox::clicked(QAbstractButton *button)[signal]
当单击按钮盒里的按钮button时,发射这个信号。 - void QDialogButtonBox::helpRequested()[signal]
当单击按钮盒里的定义为HelpRole的按钮时,发射这个信号。 - void QDialogButtonBox::rejected()[signal]
当单击按钮盒里定义为RejectRole和NoRole的按钮时,发射这个信号。 - void QDialogButtonBox::removeButton(QAbstractButton *button)
移除按钮盒里的按钮Button,但是不删除,设置它的父母为0 - void setStandardButtons ( StandardButtons buttons )
设置按钮盒中的按钮,使用|设置多个按钮。 - void setOrientation ( Qt::Orientation orientation )
设置按钮盒的样式,分为垂直和水平样式 - QPushButton * button ( StandardButton which ) const
根据StandardButton返回按钮盒中的按钮
效果与实例
main.cpp
#include <QApplication>
#include <QDialogButtonBox>
#include <QPushButton>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QDialogButtonBox *button = new QDialogButtonBox(&w);
button->setStandardButtons(QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
button->button(QDialogButtonBox::Apply)->setText("apply");
w.show();
return a.exec();
}