QT入门Item Views之QTreeView
·
目录
此文为作者原创,创作不易,转载请标明出处!
一、QTreeView界面相关
1、布局介绍
先看下界面中创建个QTreeView
一般在处理较复杂的树形结构数据的时候,使用QTreeView来展示数据
查看下基本属性功能
二、基本属性功能
1、设置单元格不能编辑
ui->treeView->setEditTriggers(QTreeView::NoEditTriggers);//设置单元格不能编辑
2、一次选中一个item
ui->treeView->setSelectionBehavior(QTreeView::SelectItems);
3、去掉鼠标移动到单元格上的虚线框
ui->treeView->setFocusPolicy(Qt::NoFocus);
ui->treeView->header()->setStretchLastSection(true);
4、最后一列自适应
ui->treeView->header()->setStretchLastSection(true);
三、代码展示
1、创建模型,导入模型
model = new QStandardItemModel(ui->treeView);//创建模型
ui->treeView->setModel(model);//导入模型
加入头部标签设置:
ui->treeView->header()->setSectionResizeMode(QHeaderView::Stretch);
model->setHorizontalHeaderLabels(QStringList()<<u8"项目"
<<QStringLiteral("当前值")<<u8"类型");//设置头部标签
然后进行子条目的创建,增加图标
item = new QStandardItem(u8"区域1");//创建一个条目对象
model->appendRow(item);//通过模型对象添加这个条目
item->setIcon(QIcon(":/image/item1.png"));//添加图标
model->setItem(1,0,new QStandardItem(u8"区域2"));
model->setItem(2,0,new QStandardItem(u8"区域3"));
model->item(1)->setIcon(QIcon(":/image/item1.png"));
2、 右键菜单栏
调用的信号是customContextMenuRequested()
QModelIndex current_index = ui->treeView->indexAt(pos);
//选择对应的根节点,并添加右击删除的操作
if(current_index.parent()== ui->treeView->rootIndex())
{
QMenu* popMenu = new QMenu(ui->treeView);
QAction* start = new QAction(u8"开始", this);
QAction* stop = new QAction (u8"停止",this);
popMenu->addAction(start);
popMenu->addAction(stop);
popMenu->exec(QCursor::pos());
delete start;
delete stop;
delete popMenu;
}
3、双击鼠标事件
双击鼠标,针对不同的节点,有效不一样,调用信号如下:
代码展示:
void Widget::on_treeView_doubleClicked(const QModelIndex &index)
{
if(index.parent()==ui->treeView->rootIndex())
{
qDebug()<<"first="<<index.data().toString();//只针对根节点有效
}
else if(index.parent().parent()==ui->treeView->rootIndex())//只针对二级节点有效
{
qDebug()<<"second="<<index.data().toString();
}
else if(index.parent().parent().parent()==ui->treeView->rootIndex()) //只针对三级节点有效
{
qDebug()<<"third="<<index.data().toString();
}
}
Demo展示
先放在精灵球中,后期开放
推荐博客:精灵球Plus介绍_清风徐来Groot的博客-CSDN博客
百度云盘:链接:https://pan.baidu.com/s/11b634VvKMIsGdahyBLpZ3Q 提取码:6666
更多推荐
已为社区贡献6条内容
所有评论(0)