ZBLOG

qt设置之并使用qtreewidget

以下是使用 QTreeWidget 的基本步骤和示例代码:

1. 基本设置

#include <QTreeWidget>
#include <QTreeWidgetItem>

// 创建 QTreeWidget
QTreeWidget *treeWidget = new QTreeWidget(this);

// 设置列数
treeWidget->setColumnCount(2);

// 设置表头
QStringList headers;
headers << "名称" << "类型";
treeWidget->setHeaderLabels(headers);

// 设置表头显示
treeWidget->setHeaderHidden(false); // 显示表头

2. 添加数据项

// 添加根节点
QTreeWidgetItem *rootItem = new QTreeWidgetItem(treeWidget);
rootItem->setText(0, "根节点");
rootItem->setText(1, "文件夹");

// 添加子节点
QTreeWidgetItem *childItem1 = new QTreeWidgetItem(rootItem);
childItem1->setText(0, "子节点1");
childItem1->setText(1, "文件");

QTreeWidgetItem *childItem2 = new QTreeWidgetItem(rootItem);
childItem2->setText(0, "子节点2");
childItem2->setText(1, "文件");

// 展开所有节点
treeWidget->expandAll();

3. 常用设置选项

// 设置选择模式
treeWidget->setSelectionMode(QAbstractItemView::SingleSelection);

// 设置编辑模式
treeWidget->setEditTriggers(QAbstractItemView::DoubleClicked | 
                           QAbstractItemView::EditKeyPressed);

// 设置交替行颜色
treeWidget->setAlternatingRowColors(true);

// 设置拖拽支持
treeWidget->setDragEnabled(true);
treeWidget->setAcceptDrops(true);
treeWidget->setDropIndicatorShown(true);

// 设置图标
QIcon folderIcon(":/icons/folder.png");
rootItem->setIcon(0, folderIcon);

QIcon fileIcon(":/icons/file.png");
childItem1->setIcon(0, fileIcon);

4. 信号槽连接

// item点击信号
connect(treeWidget, &QTreeWidget::itemClicked, 
        [](QTreeWidgetItem *item, int column) {
    qDebug() << "点击了:" << item->text(0) << "列:" << column;
});

// item双击信号  
connect(treeWidget, &QTreeWidget::itemDoubleClicked,
        [](QTreeWidgetItem *item, int column) {
    qDebug() << "双击了:" << item->text(0);
});

// selection改变信号
connect(treeWidget->selectionModel(), &QItemSelectionModel::selectionChanged,
        [](const QItemSelection &selected, const QItemSelection &deselected) {
    if (!selected.indexes().isEmpty()) {
        QModelIndex index = selected.indexes().first();
        qDebug() << "选中了:" << index.data().toString();
    }
});

5. 完整示例

void MainWindow::setupTreeWidget()
{
    // 创建树控件
    treeWidget = new QTreeWidget(this);
    
    // 基本设置
    treeWidget->setColumnCount(3);
    QStringList headers;
    headers << "名称" << "大小" << "修改日期";
    treeWi dget -> setHeaderLabels(headers);
    
    // 添加数据
    addSampleData();
    
    //布局 
    setCentral Widget(tree Widget );
}

void MainWindow::addSampleData()
{
    //添加根节点 
     auto* root= new   Tree Wi d get Item ( tree Wi d get ); 
     root -> set Text ( ,"我的电脑"); 

     //添加驱动器  
      auto* cDrive= new   Tree Wi d get Item ( root ); 
      cDrive -> set Text ( ,"C盘"); 
      cDrive -> set Text ( ,"500 GB"); 

       auto* dDrive= new   Tree Wi d get Item ( root );  
       dDrive -> set Text ( ,"D盘");  
       dDrive -> set Text ( ,"1 TB"); 

       //展开  
        tree Wi d get -> expand All(); 
}

这些是 Q Tree Wi d get的基本使用方法,可以根据具体需求进行扩展和定制。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=24360

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?