在 C++ 中添加 QTreeWidgetItem 按钮需要使用 QTreeWidget 和 QTreeWidgetItem 一起配合使用。具体步骤如下:
- 创建 QTreeWidget 实例,设置树形控件的列数;
- 使用 addTopLevelItem() 方法为每个顶级项创建 QTreeWidgetItem 实例,并将其添加到树形控件中;
- 使用 setItemWidget() 方法为每个顶级项添加 QPushButton 实例;
- 将 QPushButton 的 clicked() 信号与槽函数进行连接。
示例代码如下:
#include <QApplication>
#include <QMainWindow>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QPushButton>
class MainWindow : public QMainWindow
{
public:
MainWindow()
{
tree = new QTreeWidget();
tree->setColumnCount(2);
for (int i = 0; i < 3; ++i)
{
QTreeWidgetItem *item = new QTreeWidgetItem(tree);
item->setText(0, QString("Item %1").arg(i+1));
item->setText(1, "Description");
QPushButton *button = new QPushButton("Click me");
connect(button, &QPushButton::clicked, this, &MainWindow::buttonClicked);
tree->setItemWidget(item, 0, button);
}
setCentralWidget(tree);
}
private slots:
void buttonClicked()
{
qDebug() << "Button clicked";
}
private:
QTreeWidget *tree;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
以上代码将在每个顶级项中添加一个 QPushButton,并将其点击事件与 buttonClicked()
槽函数进行连接。当用户点击按钮时,槽函数会输出 ‘Button clicked’。