1、QTreeWidget添加项目:
QTreeWidget
的项目和列都可以直接在ui
中双击添加,假设添加2列为例:
使用代码添加项目:
//初始化TreeWidget项目
QTreeWidgetItem *item1=new QTreeWidgetItem;
//项目图标
item1->setIcon(0,button_ico_add_friends); //列数
//图标大小
item1->setSizeHint(0,QSize(20,20));
//项目文字
item1->setText(0,u8"第一个");
//放到TreeWidget中,多个时尾插的方式
ui->group_tree->addTopLevelItem(item1);
其中,设置项目的属性时,都需要在属性前加一个数字,这个数字代表添加的属性作用的列数,此处0表示第一列。由此可以得出,每初始化的一个QTreeWidgetItem对象,即是创建了一整行。
运行结果:
再写段代码用于比较:
ui->group_tree->setStyleSheet("border:0px;");
QTreeWidgetItem *item1=new QTreeWidgetItem;
QTreeWidgetItem *item2=new QTreeWidgetItem;
QTreeWidgetItem *item3=new QTreeWidgetItem;
//第一行
item1->setIcon(0,button_ico_add_friends);
item1->setText(0,u8"第一个");
//第二行
item2->setText(1,u8"第二个");
//第三行
item3->setText(0,u8"第三个");
ui->group_tree->addTopLevelItem(item1);
ui->group_tree->addTopLevelItem(item2);
ui->group_tree->addTopLevelItem(item3);
2、其他一些相关的操作:
(1)在tree Widget
中放label
:
QLabel *label = new QLabel;
label->setStyleSheet("border-image:url(:/new/prefix1/source/2.jpg);");
ui->group_tree->setItemWidget ( item,0,label ); //item行,0列
(2)修改item
的行高:
ui->group_tree-setStyleSheet("QTreeWidget#group_tree{border:0px;}"
"QTreeWidget#group_tree::item{height:30px;}");
(3)改变item
图标大小:
试了一下,item
中没有seticonsize
属性,发现直接设置treeWidget
的图标大小可以作用于item
上:
ui->group_tree->setIconSize(QSize(50,50));
(4)设置列数:
//5列
ui->group_tree->setColumnCount(5);
(5)设置标题为item
:
ui->group_tree->setHeaderItem(item1);
(6)设置标题文字:
QStringList headers;
headers<<u8"列1-1"<<u8"列1-2";
ui->group_tree->setHeaderLabels(headers);
(7)在item中添加孩子节点:
以下例子把item2
和item3
放到item1
中,作为其孩子节点:
QIcon group_ico1(":/new/prefix1/source/2.jpg");
ui->group_tree->setIconSize(QSize(50,50));
item1->setIcon(0,group_ico1);
item1->setText(1,u8"第一个");
item2->setText(0,u8"第二个");
item3->setText(0,u8"第三个");
ui->group_tree->addTopLevelItem(item1);
item1->addChild(item2);
item1->addChild(item3);
(8)添加复选框:
item1->setCheckState(0,Qt::Unchecked);
item2->setCheckState(0,Qt::Unchecked);
item3->setCheckState(0,Qt::Unchecked);
(9)隐藏下拉小三角:
ui->group_tree->setRootIsDecorated(false);
(10)隐藏头部:
ui->group_tree->setHeaderHidden(true);
(11)设置列宽:
//第一个参数为列数,第二个为宽度
ui->group_tree->setColumnWidth(0, 105);
(12)设置字体颜色:
//第2列为红色
item2->setTextColor(1,QColor(255,0,0));
(13)展开item
:
//展开所有的
ui->group_tree->expandAll();
//展开某一个item
ui->group_tree->expandItem(item1);
//展开当前item
item1->setExpanded(true);
//向下展开深度
ui->group_tree->expandToDepth(1);