QT在QTreeWidget中设置节点双击选中,请给我完整代码
时间: 2024-02-05 12:11:44 浏览: 77
QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与一个典型的基于项目所使用的接口类似QListView
以下是一个简单的示例代码,演示如何在 QTreeWidget 上设置节点双击选中:
```cpp
#include <QApplication>
#include <QTreeWidget>
#include <QTreeWidgetItem>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTreeWidget treeWidget;
treeWidget.setHeaderLabels(QStringList() << "Name" << "Value");
// 添加根节点
QTreeWidgetItem *root = new QTreeWidgetItem(&treeWidget);
root->setText(0, "Root");
root->setText(1, "0");
// 添加子节点
QTreeWidgetItem *child = new QTreeWidgetItem(root);
child->setText(0, "Child");
child->setText(1, "1");
// 设置双击选中
treeWidget.setSelectionMode(QAbstractItemView::SingleSelection);
treeWidget.setEditTriggers(QAbstractItemView::NoEditTriggers);
treeWidget.setExpandsOnDoubleClick(false);
QObject::connect(&treeWidget, &QTreeWidget::itemDoubleClicked, [&treeWidget](QTreeWidgetItem *item, int column) {
treeWidget.setCurrentItem(item);
});
treeWidget.show();
return a.exec();
}
```
在上述代码中,我们首先创建一个 `QTreeWidget` 对象,并设置了表头。然后添加了一个根节点和一个子节点。接着我们通过 `setSelectionMode()` 方法设置了选择模式为单选,通过 `setEditTriggers()` 方法禁止编辑,通过 `setExpandsOnDoubleClick()` 方法禁用双击展开节点。最后我们使用 `itemDoubleClicked` 信号和 `setCurrentItem()` 方法实现了双击选中节点的功能。
阅读全文