用toolbox时 效果图如图

问题1,我想让toolbox每一个tab的height 根据内容设置,填充空白,问题2,我想在同时间打开多个tab,默认只打开一个。
用treewidget时 效果如
问题,如何让item A 的子item 在控件最左边 前面的空白填充!!!
目的是为了类似UI界面 控件列表的效果
代码如下 toolbox:
QToolBox * qtb = new QToolBox(groupBox1);
// qtb->setStyleSheet("QToolBoxButton { min-height:20px; }");
//第一个抽屉
QGroupBox * gb1 = new QGroupBox(qtb);
QIcon icon1("1.png");
//QVBoxLayout *layout = new QVBoxLayout(gb1);
QListWidget * qlw = new
QListWidget(gb1);
qlw->addItem(new QListWidgetItem(QIcon(
QObject::tr("4.png")), QObject::tr("view1")));
qlw->addItem(new QListWidgetItem(QIcon(QObject::tr("4.png")), QObject::tr("view2")));
int lw_height = (qlw->height() - 9 ) * qlw->count();
qlw->setGeometry(0,0,100,lw_height);
//layout->addWidget(qlw);
//qlw->setStyleSheet("background-color:blue;");
//第二个抽屉
QGroupBox * gb2 = new QGroupBox(qtb);
QIcon icon2("2.png");
//第三个抽屉
QGroupBox * gb3 = new QGroupBox(qtb);
QIcon icon3("3.png");
//添加抽屉
qtb->addItem((QWidget*)gb1,tr("views"));
qtb->addItem((QWidget*)gb2,tr("buttons"));
qtb->addItem((QWidget*)gb3,tr("lists"));
qtb->setItemIcon(0,icon1);
qtb->setItemIcon(1,icon2);
qtb->setItemIcon(2,icon3);
qtb->layout()->setSpacing(0);
//qtb->widget(0)->setStyleSheet("QToolBox::item{height:25px}");
//qtb->setGeometry(0,0,100,lw_height+75);
qtb->setGeometry(0,0,100,300);
//qtb->setLineWidth(200);
-------------------------------------------------------------------------------------------
treewidget:
QTreeWidget* treeWidget = new
QTreeWidget(groupBox1);
treeWidget->setColumnCount(1);
QStringList headers;
headers << QObject::tr("列表");
treeWidget->setHeaderLabels(headers);
QStringList A;
A << QObject::tr("A");
QTreeWidgetItem *Aroot = new QTreeWidgetItem(treeWidget, A);
QStringList zhangsanChinese;
zhangsanChinese << QObject::tr("标签页");
QTreeWidgetItem *leaf1 = new QTreeWidgetItem(Aroot, zhangsanChinese);
leaf1->setIcon(0, QIcon("2.png"));
Aroot->addChild(leaf1);
QStringList zhangsanMath;
zhangsanMath << QObject::tr("标签名");
QTreeWidgetItem *leaf2 = new QTreeWidgetItem(Aroot, zhangsanMath);
leaf2->setIcon(0, QIcon("1.png"));
Aroot->addChild(leaf2);
QStringList B;
B << QObject::tr("B");
QTreeWidgetItem *Broot = new QTreeWidgetItem(treeWidget, B);
QStringList C;
C << QObject::tr("C");
QTreeWidgetItem *Croot = new QTreeWidgetItem(treeWidget, C);
//QTreeWidgetItem* A = new QTreeWidgetItem(treeWidget,QStringList()<<"A");
//A->setIcon(0, QIcon("1.png"));
//A->setCheckState(0, Qt::Checked);
// QTreeWidgetItem* B = new QTreeWidgetItem(treeWidget,QStringList()<<"B");
// B->setIcon(0, QIcon("2.png"));
// B->setCheckState(0, Qt::Checked);
// QTreeWidgetItem* C = new QTreeWidgetItem(treeWidget,QStringList()<<"C");
// C->setIcon(0, QIcon("3.png"));
// C->setCheckState(0, Qt::Checked);
treeWidget->addTopLevelItem(Aroot);
treeWidget->addTopLevelItem(Broot);
treeWidget->addTopLevelItem(Croot);
//treeWidget->setStyleSheet("QTreeWidget::item{height:25px}");
treeWidget->setGeometry(0,0,200,400);
QHBoxLayout *mainlayout = new QHBoxLayout;
mainlayout->addWidget(treeWidget);