1、TreeWidget
PS:主要是用于只有一个根节点的需求
①、显示
拖出TreeWidget控件,名称treeWidget
ui->treeWidget->setColumnCount(1); //设置列数
ui->treeWidget->setHeaderLabel(tr("图像选择")); //设置头的标题
QTreeWidgetItem *imageItem1 = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("图像1")));
imageItem1->setIcon(0,QIcon(":/img/1.png"));
QTreeWidgetItem *imageItem1_1 = new QTreeWidgetItem(imageItem1,QStringList(QString("Band1"))); //子节点1
imageItem1_1->setIcon(0,QIcon(":/img/1.png"));
imageItem1->addChild(imageItem1_1); //添加子节点
//以此类推可以添加更多行
ui->treeWidget->expandAll(); //结点全部展开
效果:

②获取(单击/双击)的节点序号:
slots:
void showSelectedImage(QTreeWidgetItem*,int);//单击
void showSelectedImage2(QTreeWidgetItem*,int);//双击
//单击
connect(ui->treeWidget,SIGNAL(itemClicked(QTreeWidgetItem*,int)),this,SLOT(showSelectedImage(QTreeWidgetItem*,int)));
//双击
connect(ui->treeWidget,SIGNAL(itemActivated(QTreeWidgetItem*,int)),this,SLOT(showSelectedImage2(QTreeWidgetItem*,int)));
//单击
void QMySerialPort::showSelectedImage(QTreeWidgetItem *item, int column)//column为列号
{
//不能判断是那个根节点,只能判断节点的序号
QTreeWidgetItem *parent = item->parent();
if(NULL == parent) //注意:最顶端项是没有父节点的,双击这些项时注意(陷阱)
return;
int number = parent->indexOfChild(item); //item在父项中的节点行号(从0开始)
ui->pushButton->setText(QString::number(number));
}
//双击
void QMySerialPort::showSelectedIm

本文详细介绍Qt中TreeWidget的使用方法,包括创建、显示、获取节点信息、节点操作、添加快捷菜单、自定义图标及背景颜色等。同时,提供示例代码帮助理解。
最低0.47元/天 解锁文章
729

被折叠的 条评论
为什么被折叠?



