QT可点击的小部件(可能按钮)在QTreeWidget

QT Clickable widget (possibly button) inside QTreeWidget?

本文关键字:按钮 QTreeWidget 小部 QT      更新时间:2023-10-16

我有一个表,基本上是一个QTreeWidget,我想把一个可点击的小部件,可能是一个按钮里面。每行是一个QTreeWidgetItem,但我不知道如何添加一个按钮与QTreeWidgetItem::setData

这是对Qt文档中提供的示例的修改,为QTreeWidget添加了一个QPushButton到第二项

 ui->treeWidget->setColumnCount(1);
 QList<QTreeWidgetItem *> items;
 for (int i = 0; i < 10; ++i)
    items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
 ui->treeWidget->insertTopLevelItems(0, items);
 ui->treeWidget->setItemWidget(items.value(1),0,new QPushButton("Click Me")); // Solution for your problem 

对于一个项目中并排的两个按钮,您可以采用这种方法

QWidget *dualPushButtons = new QWidget();
QHBoxLayout *hLayout = new QHBoxLayout();
hLayout->addWidget(new QPushButton("Button1"));
hLayout->addWidget(new QPushButton("Button2"));
dualPushButtons->setLayout(hLayout);
ui->treeWidget->setItemWidget(items.value(1),0,dualPushButtons);

您可以通过为按钮等添加属性来适应这一点。