Hello Qt(七)——QT按钮组件

一、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(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组件常用成员函数:

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(const QString &text,QWidget *parent,const char *name = 0)

构造一个名称为name、父对象为parent并且文本为text的复选框。

bool 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(QWidget *parent,const char *name = 0)

构造一个名字为name,父对象为parent的ToolButton。

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对象的槽函数。

QToolButton(ArrowType type,QWidget *parent,const char *name = 0)

把工具按钮构造成箭头按钮,type定义了箭头的方向,可用的值有LeftArrow、RightArrow、UpArrow、DownArrow。

void setAutoRaise(bool enable)

根据参数enable值设置按钮是否可自动浮起。

void setIcon(const QIconSet &)

设置显示在工具按钮上的图标。

void setOn(bool enable) [virtual slot]

设置按钮是否为开,enable等于true则设置为开,否则设置为关。

void setTextLabel(const QString &) [slot]

设置按钮的提示标签。

QString 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(QWidget *parent = 0)

构造一个父对象为parent的命令链接按钮。

QCommandLinkButton(const QString &text,QWidget *parent = 0)

构造一个父对象为parent、文本为text的命令链接按钮。

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(QWidget *parent = 0)

构造一个按钮盒,父对象为parent。

QDialogButtonBox(QT::Orientation orientation,QWidget *parent = 0)

构造一个按钮盒,父对象为parent,排列方向为orientation,并且包含buttons。

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();
}

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值