qtreeview点击 获取item name

在Qt中,如果你使用QTreeView,可以通过QModelIndex获取被点击项的名称。以下是一个简要的示例,展示如何实现这一点:

示例代码

 

cpp

#include <QApplication>
#include <QTreeView>
#include <QStandardItemModel>
#include <QDebug>

class MyTreeView : public QTreeView {
    Q_OBJECT

public:
    MyTreeView(QWidget *parent = nullptr) : QTreeView(parent) {
        // 创建模型并添加数据
        QStandardItemModel *model = new QStandardItemModel(this);
        setModel(model);

        // 添加一些示例项
        QStandardItem *parentItem = model->invisibleRootItem();
        parentItem->appendRow(new QStandardItem("Item 1"));
        parentItem->appendRow(new QStandardItem("Item 2"));
        parentItem->appendRow(new QStandardItem("Item 3"));

        // 连接信号和槽
        connect(this, &QTreeView::clicked, this, &MyTreeView::onItemClicked);
    }

public slots:
    void onItemClicked(const QModelIndex &index) {
        if (!index.isValid()) return; // 确保索引有效
        QString itemName = index.data(Qt::DisplayRole).toString();
        qDebug() << "Clicked item name:" << itemName;
    }
};

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    MyTreeView treeView;
    treeView.setWindowTitle("QTreeView Example");
    treeView.resize(400, 300);
    treeView.show();
    return a.exec();
}

#include "main.moc"

cpp

说明

  • QTreeView:这是用于显示树形结构的视图。
  • QStandardItemModel:这是一个简单的模型,供QTreeView使用。
  • clicked信号:我们连接了QTreeViewclicked信号到一个槽函数onItemClicked,在该函数中获取被点击项的名称。
  • index.data(Qt::DisplayRole):通过模型索引获取显示角色的数据,这是你所需的项名称。

运行代码

编译并运行上述代码。点击QTreeView中的项,将在控制台输出所点击的项的名称。如果需要进一步的解释或其他问题,随时告诉我!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值