首页 > 编程知识 正文

qtreewidget高度,QTreeWidget

时间:2023-05-05 07:29:35 阅读:130361 作者:4499

1 .常规API设置1 .添加顶层节点

//添加顶级节点qtreewidgetitem * topitem1=newqtreewidgetitem (ui-tree构件); topitem1-settext(0,'百度'); ui-tree构件- addtoplevelitem (topitem1); 2 .设置页眉隐藏并展开所有项目

//设置隐藏标题ui-tree构件- setheader hidden (true )//展开ui-tree构件-扩展(); 3 .向顶层节点添加子节点

qtreewidgetitem * item 11=newqtreewidgetitem (topitem1); item11-settext(0,'研发部'); qtreewidgetitem * item 12=newqtreewidgetitem (topitem1); item12-settext(0,'销售部'); qtreewidgetitem * item 13=newqtreewidgetitem (topitem1); item13-settext(0,'人事部'; 4 .节点有一些数据,可以使用名为setData ()的接口

//可以设置数据并具有多个数据的item11-setdata(0,Qt :3360用户,100/*人员数)/); item11-setdata(0,Qt :用户1,'普通鸭子'/*负责人姓名*/); //数据item11-data(0,Qt:UserRole ).toInt ); item11-data(0,Qt:UserRole 1).toString ); 5 .节点可以设置自定义类型并设置图标、标志和文本

//自定义枚举enum NodeType{ ROOT=0,SON }; qtreewidgetitem * item=newqtreewidgetitem; //item-setIcon (; //item-setText (; //item-setFlags (; 二、设置checkboxqtreewidgetitem * topitem2=newqtreewidgetitem (ui-tree构件); 主题2-settext (0,'腾讯'); topitem2-setcheckstate(0,Qt:Checked ); ui-tree构件- addtoplevelitem () topitem2; qtreewidgetitem * item 21=newqtreewidgetitem (topitem2); item21-settext(0,'研发部'); item 21 -设置检查状态(0,Qt:Checked ); qtreewidgetitem * item 22=newqtreewidgetitem (topitem2); item22-settext(0,'销售部'); item 22 -设置检查状态(0,Qt:Checked ); qtreewidgetitem * item 23=newqtreewidgetitem (topitem2); item23-settext(0,'人事部'; item 23 -设置检查状态(0,Qt:Checked ); 响应于单击信号,如果选择了顶部节点,则下面的所有子节点都将被选择

连接(ui-tree构件,qtreewidget :3360 item clicked,this,Form:slotClicked ); void form :3360 slot clicked (qtreewidgetitem * item,int column ) /轻松响应的选择状态槽函数for(intI=0; iitem-childCount (; I ) qtreewidgetitem * pchild item=item-child (I; philditem-setcheckstate(0,item-checkState(0)0); }三、右键单击菜单//右键单击菜单属性ui-tree widget-setcontextmenupolicy (Qt 33603360自定义上下文菜单); //右键单击菜单m _ menu=newq menu (ui-tree构件); m_menu-addAc

tion("添加"); m_menu->addAction("删除"); //响应右键菜单信号槽 connect(ui->treeWidget,&QTreeWidget::customContextMenuRequested, this,&Form::slotMenuPopup); void Form::slotMenuPopup(const QPoint &pos) { m_menu->exec(ui->treeWidget->mapToGlobal(pos)); }  四.设置qss

 这里简单设置一下背景色,展开/合并时的图标,item的一些设置,仅供参考。

const QString styles = "QTreeView{ background-color: #5B677A; font-size:17px; color: white;}QTreeView::item:hover{ background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1); border: 1px solid #bfcde4;}QTreeView::item:hover{ background: rgb(69, 187, 217);}QTreeView::item:selected:active{ background: rgb(63, 147, 168);}QTreeView::item:selected:!active{ background: rgb(63, 147, 168);}QTreeView::branch{ background:#5B677A;}QTreeView::branch:has-children:!has-siblings:closed,QTreeView::branch:closed:has-children:has-siblings{ border-image: none; background:#5B677A; image: url(image/Folder-1.png);}QTreeView::branch:open:has-children:!has-siblings,QTreeView::branch:open:has-children:has-siblings{ border-image: none; background:#5B677A; image: url(image/Open-Folder.png);}"; 调用ui->treeWidget->setStyleSheet(styles);就行了 五.运行效果

六.源码

 https://download.csdn.net/download/wzz953200463/13152616

七.多列树

#include "widget.h"#include "ui_widget.h"#include <QDebug>const QString sstyle = "QHeaderView::section{ background-color: white;}";Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); QStringList strList; strList<<"名称"<<"年龄"<<"性别"; ui->treeWidget->setHeaderLabels(strList); ui->treeWidget->header()->setStyleSheet(sstyle); QTreeWidgetItem *item1 = new QTreeWidgetItem(QStringList()<<"七年级"); ui->treeWidget->addTopLevelItem(item1); QTreeWidgetItem *item11 = new QTreeWidgetItem(QStringList()<<"小涨"<<"13"<<"男"); item1->addChild(item11); QTreeWidgetItem *item12 = new QTreeWidgetItem(QStringList()<<"微笑的汽车"<<"14"<<"女"); item1->addChild(item12); QTreeWidgetItem *item13 = new QTreeWidgetItem(QStringList()<<"wwdsy"<<"13"<<"女"); item1->addChild(item13); QTreeWidgetItem *item2 = new QTreeWidgetItem(QStringList()<<"八年级"); ui->treeWidget->addTopLevelItem(item2); QTreeWidgetItem *item21 = new QTreeWidgetItem(QStringList()<<"小涨"<<"13"<<"男"); item2->addChild(item21); QTreeWidgetItem *item22 = new QTreeWidgetItem(QStringList()<<"微笑的汽车"<<"14"<<"女"); item2->addChild(item22); QTreeWidgetItem *item23 = new QTreeWidgetItem(QStringList()<<"wwdsy"<<"13"<<"女"); item2->addChild(item23); QTreeWidgetItem *item3 = new QTreeWidgetItem(QStringList()<<"九年级"); ui->treeWidget->addTopLevelItem(item3); QTreeWidgetItem *item31 = new QTreeWidgetItem(QStringList()<<"小涨"<<"13"<<"男"); item3->addChild(item31); QTreeWidgetItem *item32 = new QTreeWidgetItem(QStringList()<<"微笑的汽车"<<"14"<<"女"); item3->addChild(item32); QTreeWidgetItem *item33 = new QTreeWidgetItem(QStringList()<<"wwdsy"<<"13"<<"女"); item3->addChild(item33);}Widget::~Widget(){ delete ui;}void Widget::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column){ qDebug()<<item->text(0); qDebug()<<item->text(1); qDebug()<<item->text(2);}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。