C++ Qt5学习笔记 2020-12-11(QTreeWidget使用添加项目,及其他相关操作)

44 篇文章 8 订阅

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中添加孩子节点:
以下例子把item2item3放到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);

3、QDrag拖放event和action:

https://blog.csdn.net/hyongilfmmm/article/details/83238239

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值