基本Widgets(27):【类】QToolBox [官翻]

QToolBox Class

QToolBox类提供了一列选项卡式小部件项。

Header#include < QToolBox >
qmakeQT += widgets
InheritsQFrame
Inherited By

详细说明

工具箱是一个小部件,它将一列选项卡依次显示在另一列之上,而当前项显示在当前选项卡的下方。每个选项卡在选项卡列中都有一个索引位置。选项卡的项目是一个QWidget。

每个项都有一个itemText() 、一个可选itemIcon() 、一个可选itemToolTip() 和一个widget() 。可以使用setItemText() 、setItemIcon() 和setItemToolTip() 更改项的属性。可以使用setItemEnabled() 单独启用或禁用每个项。

使用addItem() 添加项,或使用insertItem() 在特定位置插入项。项目总数由count() 给出。可以使用delete删除项,也可以使用removietem() 从工具箱中删除项。结合使用removItem() 和insertItem() 可以将项目移动到不同的位置。

当前项小部件的索引由currentIndex() 返回,并用setCurrentIndex() 设置。可以使用indexOf() 找到特定项的索引,并且给定索引处的项由item() 返回。

当前项更改时会发出currentChanged() 信号。

属性

  1. count: const int 工具箱中包含的项数

    默认情况下,此属性的值为0。

    Access functions:

    • int count() const
  2. currentIndex: int 当前项的索引

    默认情况下,对于空工具箱,此属性的值为-1。

    Access functions:

    • int currentIndex() const
    1. void setCurrentIndex(int index)

    Notifier signal:

    • void currentChanged(int index)

公共函数

构造和析构

  1. QToolBox(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
  2. virtual ~QToolBox()

属性相关

  1. int count() const
  2. int currentIndex() const
  3. void setCurrentIndex(int index)

增插删查

  1. int addItem(QWidget *widget, const QIcon &iconSet, const QString &text)
  2. int addItem(QWidget *w, const QString &text)
  3. int insertItem(int index, QWidget *widget, const QIcon &icon, const QString &text)
  4. int insertItem(int index, QWidget *widget, const QString &text)
  5. void removeItem(int index)
  6. int indexOf(QWidget *widget) const
  7. QWidget * widget(int index) const

item相关

  1. QWidget * currentWidget() const 当前项目
  2. bool isItemEnabled(int index) const
  3. void setItemEnabled(int index, bool enabled)
  4. QIcon itemIcon(int index) const
  5. void setItemIcon(int index, const QIcon &icon)
  6. QString itemText(int index) const
  7. void setItemText(int index, const QString &text)
  8. QString itemToolTip(int index) const
  9. void setItemToolTip(int index, const QString &toolTip)

公共槽

  1. void setCurrentIndex(int index) 属性相关
  2. void setCurrentWidget(QWidget *widget) 当前项目相关

信号

  1. void currentChanged(int index)

受保护的函数

  1. virtual void itemInserted(int index)
  2. virtual void itemRemoved(int index)

重写的受保护的函数

  1. virtual void changeEvent(QEvent *ev) override
  2. virtual bool event(QEvent *e) override
  3. virtual void showEvent(QShowEvent *e) override

相关代码

#include <QtWidgets>
int main(int argc, char *argv[])
{
    QApplication::setStyle (QStyleFactory::create ("fusion")); //windowsvista fusion

    QApplication app(argc,argv);
    app.setApplicationName ("QToolBox");

    QDialog w;
    w.setWindowFlag (Qt::WindowContextHelpButtonHint,false);

    QToolBox   widget0;

    widget0.setStyleSheet ("background:yellow");

    QCommonStyle cs;
    QFrame *frame;
    QVBoxLayout *vBox;
    for(int i=0; i < 80; i++){
        QIcon icon = cs.standardIcon ((QStyle::StandardPixmap) i );
        if(i%20 == 0) {
            frame = new QFrame;
            frame->setFrameStyle (QFrame::Panel | QFrame::Plain);
            frame->setStyleSheet ("background:steelblue");
            vBox = new QVBoxLayout(frame);
            vBox->setAlignment (Qt::AlignCenter);
            widget0.addItem (frame,icon,QString("%1-%2").arg (i).arg (i+19));
        }
        if(icon.isNull ())
            continue;

        QToolButton *tbn = new QToolButton;
        tbn->setStyleSheet ("background:honeydew");

        tbn->setIcon (icon);
        tbn->setIconSize (QSize(24,24));
        tbn->setText ("样式图标"+QString::number (i));
        tbn->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
        vBox->addWidget (tbn);
    }

    auto mainLayout = new QGridLayout(&w);
    mainLayout->addWidget (&widget0,0,0);

    w.resize (200,320);
    w.show ();
    app.exec();
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值