您的位置:首页 > 编程语言 > Qt开发

QT开发(七)——QT按钮组件

2016-11-01 16:51 211 查看

QT开发(七)——QT按钮组件

QT中有六种按钮组件,分别是按压按钮QPushButton、工具按钮QToolButton、单选按钮QRadioButton、多选按钮QCheckBox、命令链接按钮QCommandLinkButton、按钮盒QButtonBox。

一、QPushButton组件

1、QPushButton组件简介

QPushButton组件用于接受用户点击事件,能够显示提示字符串,是功能性组件,需要父组件作为容器,能够在父组件中进行定位,用于执行命令或触发事件。QPushButton的类继承如下:QPushButton :public QAbstractButton :pubic QWidget :public QObject, public QPaintDevice

2、QPushButton组件属性

QPushButton 组件属性设置选项:
A、name:组件对应源代码中的名字。
B、text:组件对应图形界面中显示的名字。
C、font:设置text的字体。
D、enabled:组件是否可用。

3、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]
当释放按钮时,发射信号。

4、QPushButton实例

QPushButton *button = new QPushButton("OK", this);
connect(button, SIGNAL(clicked()), this, SLOT(onOK()));

二、QRadioButton组件

1、QRaidoButton组件简介

QRaidoButton单选按钮,用于提供两个或多个互斥选项。

2、QRaidoButton组件属性

QRaidoButton单选按钮属性设置选项:
A、name:组件对应源代码中所显示的名字。
B、text:组件对应图形界面中所显示的名字。
C、font:设置text字体。
D、enabled:组件是否可用,可用为true,不可用为false。
E、checked:用来设置或返回是否选中单选按钮,选中为true,未选中为false。

3、QRaidoButton组件常用成员函数:

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。

4、QRadioButton实例

Widget.h文件:
#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui/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
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);
//多个QRadioButton连接到onRadioClick()
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;
}
}
Main.cpp文件:
#include <QtGui/QApplication>
#include "widget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QButtonGroup group;
Widget w;
w.show();

return a.exec();
}

三、QCheckBox组件

1、QCheckBox组件简介

QCheckBox复选框,复选框提供多选多。
QCheckBox有三种状态:checked、unchecked和PartiallyChecked。

2、QCheckBox组件属性

QCheckBox复选框属性设置选项:
A、name:组件对应源代码中所显示的名字。
B、text:组件对应图形界面中所显示的名字。
C、font:设置text字体。
D、enabled:组件是否可用,可用为true,不可用为false。 E、checked:用来设置或返回是否选中单选按钮,选中为true,未选中为false。

3、QCheckBox组件常用成员函数

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的值。

4、QCheckBox实例

#include <QtGui/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();
}

四、QToolButton组件

1、QToolButton组件简介

QToolButton工具按钮,是一种用于命令或者选项的可以快速访问的按钮,通常在ToolBar里面。工具按钮通常显示的是图标,而不是文本标签。ToolButton支持自动浮起。在自动浮起模式中,按钮只有在鼠标指向它的时候才绘制三维的框架。

2、QToolButton组件属性

QToolButton工具按钮设置选项:
A、name:组件对应源代码中的名称。 B、text:工具按钮标签文本。
C、font:设置工具按钮标签的字体。
D、autoRaise:自动浮起是否生效。
E、iconSet:提供显示在按钮上的图标的图标集。
F、on:工具按钮是否为开。 G、textLabel:工具按钮自动提示文本。
H、usesTextLabel:自动提示文本textLabel是否工作,默认为false。

3、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进行设置void setPopupMode ( ToolButtonPopupMode mode )
设置ToolButton的菜单弹出方式ToolButtonPopupMode,弹出方式如下:QToolButton::DelayedPopup延迟弹出
QToolButton::MenuButtonPopup菜单弹出QToolButton::InstantPopup点击立即弹出

4、QToolButton实例

#include <QtGui/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();
}

五、QCommandLinkButton组件

1、QCommandLinkButton组件简介

QCommandLinkButton命令链接按钮,继承自QPushButton,用于在互斥选项中选择一项,QCommandLinkButton除带有正常的按钮上的文字描述文本外,默认情况下,将携带一个箭头图标,表明按下按钮将打开另一个窗口或页面。

2、QCommandLinkButton组件属性

QCommandLinkButton组件属性设置选项:
A、name:组件对应源代码中的名称。
B、text:组件对应图形界面中所显示的标签。
C、font:设置text的字体。
D、enabled:组件是否可用。
E、description:一个描述性的标签,以配合按钮上的文字。

3、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
返回按钮上显示的文本。

六、QDialogButtonBox组件

1、QDialogButtonBox组件简介

QDialogButtonBox按钮盒,可以快速地布置一组按钮,有水平和垂直样式。

2、QDialogButtonBox组件属性

QDialogButtonBox组件属性设置选项:
A、name:该控件对应源代码中的名称。
B、font:设置text的字体。
C、enabled:该控件是否可用。
D、centerButtons:ButtonBox中的按钮是否居中布局,默认值为false。
E、orientation:按钮布局方向,Qt提供QT::Horizontal和QT::Vertical两种。
F、standardButtons:标准按钮集合。
QDialogButtonBox::Ok
QDialogButtonBox::Open
QDialogButtonBox::Save
QDialogButtonBox::Cancel
QDialogButtonBox::Close
QDialogButtonBox::Discard
QDialogButtonBox::Apply
QDialogButtonBox::Reset
QDialogButtonBox::RestoreDefaults
QDialogButtonBox::Help
QDialogButtonBox::SaveAll
QDialogButtonBox::Yes
QDialogButtonBox::YesToAll
QDialogButtonBox::No
QDialogButtonBox::NoToAll
QDialogButtonBox::Abort
QDialogButtonBox::Retry
QDialogButtonBox::Ignore
QDialogButtonBox::NoButton

3、QDialogButtonBox组件常用成员函数

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返回按钮盒中的按钮

4、QDialogButtonBox实例

#include <QtGui/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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  开发 QT 按钮组件