子项添加一个widget ,widget中使用水平布局,在widget中增加两个按钮,使用lambda表达式创建信号和槽。
ui->setupUi(this);
QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget);
QTreeWidgetItem *itemchild = new QTreeWidgetItem(item);
QWidget *widget = new QWidget();
QHBoxLayout* pLayout = new QHBoxLayout();//水平布局
QToolButton* p1 = new QToolButton();
QIcon icon = QIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)0));
p1->setIcon(icon);
p1->setIconSize(QSize(100,100));
p1->setText("12345645");
p1->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
QToolButton* p2 = new QToolButton();
p2->setIconSize(QSize(100,100));
p2->setIcon(QIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)1)));
p2->setText("123");
p2->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pLayout->addWidget(p1);
pLayout->addWidget(p2);
pLayout->addStretch();
widget->setLayout(pLayout);
QWidget *widget1 = new QWidget();
QHBoxLayout* pLayout1 = new QHBoxLayout();//水平布局
QToolButton* p11 = new QToolButton();
p11->setIconSize(QSize(100,100));
p11->setIcon(QIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)4)));
p11->setStyleSheet("QToolButton{width:100px;background-image:center;}");
p11->setText("123");
p11->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
connect(p11, &QPushButton::clicked, [=]() {
QMessageBox::about(0,0,"p11");
});
QToolButton* p21 = new QToolButton();
p21->setIcon(QIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)5)));
p21->setText("123");
p21->setIconSize(QSize(100,100));
p21->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
connect(p21, &QPushButton::clicked, [=]() {
QMessageBox::about(0,0,"p21");
});
pLayout1->addWidget(p11);
pLayout1->addWidget(p21);
pLayout1->addStretch();
widget1->setLayout(pLayout1);
ui->treeWidget->setHeaderHidden(true);
ui->treeWidget->setItemWidget(item,0,widget);
ui->treeWidget->setItemWidget(itemchild,0,widget1);
ui->treeWidget->show();