Qt中treewiget类继承treeview类所以使用treeview也可以实现一下效果
实现效果
添加虚线----->设置节点
添加头文件
#include <QStyleFactory>
#include <QTreeWidgetItem>
#include <QStandardItemModel>
// 添加虚线
ui->setupUi(this);
ui->treeWidget->setStyle(QStyleFactory::create("windows"));
//结点的实现
ui->treeWidget->setColumnCount(1); //设置列数
ui->treeWidget->setHeaderLabel(tr("图像选择")); //设置头的标题
ui->treeWidget->header()->setHidden(true);// 隐藏标题头
QTreeWidgetItem *imageItem1 = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("图像1")));
imageItem1->setIcon(0,QIcon("xxx.png"));
QTreeWidgetItem *imageItem1_1 = new QTreeWidgetItem(imageItem1,QStringList(QString("Band1"))); //子节点1
imageItem1->addChild(imageItem1_1); //添加子节点
QTreeWidgetItem *imageItem2 = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("图像2")));
QTreeWidgetItem *imageItem2_1 = new QTreeWidgetItem(imageItem2,QStringList(QString("Band1"))); //子节点1
QTreeWidgetItem *imageItem2_2 = new QTreeWidgetItem(imageItem2,QStringList(QString("Band2"))); //子节点2
imageItem2->addChild(imageItem2_1); //添加子节点
imageItem2->addChild(imageItem2_2);
ui->treeWidget->expandAll(); //结点全部展开
双击事件
创建槽函数
private slots:
void showSelectedImage(QTreeWidgetItem * item); //双击树节点事件
在构造函数中添加connect
connect(ui->treeWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(showSelectedImage(QTreeWidgetItem*)));
实现槽函数的双击事件
void Widget::showSelectedImage(QTreeWidgetItem *item)
{
if (item == imageItem1_1)
{
// 该节点为图像1的子节点Band1
// do something
qDebug()<<"1_1";
}
else if (item == imageItem2_1)
{
// 该节点为图像2的子节点Band1
// do something
qDebug()<<"2_1";
}
else if (item == imageItem2_2)
{
// 该节点为图像2的子节点Band2
// do something
qDebug()<<"2_2";
}
}