QToolBox Class
QToolBox类提供了一列选项卡式小部件项。
Header | #include < QToolBox > |
---|---|
qmake | QT += widgets |
Inherits | QFrame |
Inherited By |
详细说明
工具箱是一个小部件,它将一列选项卡依次显示在另一列之上,而当前项显示在当前选项卡的下方。每个选项卡在选项卡列中都有一个索引位置。选项卡的项目是一个QWidget。
每个项都有一个itemText() 、一个可选itemIcon() 、一个可选itemToolTip() 和一个widget() 。可以使用setItemText() 、setItemIcon() 和setItemToolTip() 更改项的属性。可以使用setItemEnabled() 单独启用或禁用每个项。
使用addItem() 添加项,或使用insertItem() 在特定位置插入项。项目总数由count() 给出。可以使用delete删除项,也可以使用removietem() 从工具箱中删除项。结合使用removItem() 和insertItem() 可以将项目移动到不同的位置。
当前项小部件的索引由currentIndex() 返回,并用setCurrentIndex() 设置。可以使用indexOf() 找到特定项的索引,并且给定索引处的项由item() 返回。
当前项更改时会发出currentChanged() 信号。
属性
-
count: const int 工具箱中包含的项数
默认情况下,此属性的值为0。
Access functions:
- int count() const
-
currentIndex: int 当前项的索引
默认情况下,对于空工具箱,此属性的值为-1。
Access functions:
- int currentIndex() const
- void setCurrentIndex(int index)
Notifier signal:
- void currentChanged(int index)
公共函数
构造和析构
- QToolBox(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
- virtual ~QToolBox()
属性相关
- int count() const
- int currentIndex() const
- void setCurrentIndex(int index)
增插删查
- int addItem(QWidget *widget, const QIcon &iconSet, const QString &text)
- int addItem(QWidget *w, const QString &text)
- int insertItem(int index, QWidget *widget, const QIcon &icon, const QString &text)
- int insertItem(int index, QWidget *widget, const QString &text)
- void removeItem(int index)
- int indexOf(QWidget *widget) const
- QWidget * widget(int index) const
item相关
- QWidget * currentWidget() const 当前项目
- bool isItemEnabled(int index) const
- void setItemEnabled(int index, bool enabled)
- QIcon itemIcon(int index) const
- void setItemIcon(int index, const QIcon &icon)
- QString itemText(int index) const
- void setItemText(int index, const QString &text)
- QString itemToolTip(int index) const
- void setItemToolTip(int index, const QString &toolTip)
公共槽
- void setCurrentIndex(int index) 属性相关
- void setCurrentWidget(QWidget *widget) 当前项目相关
信号
- void currentChanged(int index)
受保护的函数
- virtual void itemInserted(int index)
- virtual void itemRemoved(int index)
重写的受保护的函数
- virtual void changeEvent(QEvent *ev) override
- virtual bool event(QEvent *e) override
- 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;
}