节点编辑
// 设置节点可编辑
QTreeWidgetItem *pItem = new QTreeWidgetItem();
pItem->setFlags(pItem->flags() | Qt::ItemIsEditable);
// 编辑当前节点
this->editItem(this->currentItem());
右键菜单
ui.treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
auto treeMenu = new QMenu();
auto ac_1 = new QAction("Node1");
auto ac_2 = new QAction("Node2");
treeMenu->addAction(ac_1);
treeMenu->addAction(ac_2);
connect(ui.treeWidget, &QTreeWidget::customContextMenuRequested, this, [=](const QPoint &pos)
{
treeMenu->popup(ui.treeWidget->mapToGlobal(pos));
});
获取编辑完成后的内容/获取何时编辑完成
// 继承QTreeWidget并重写commitData
class FS_TreeWidget : public QTreeWidget
{
Q_OBJECT
public:
FS_TreeWidget(QWidget *parent);
~FS_TreeWidget();
protected:
virtual void commitData(QWidget *editor)
{
QString newText = ((QLineEdit *)editor)->text(); // 获取编辑完成后的内容
emit sigEditFinished(); // 编辑完成后发出信号
QAbstractItemView::commitData(editor);
}
};
添加CheckBox
item->setCheckState(0, Qt::Checked);