QTreeWidget中对于其中item的可编辑属性的设置

QT中如何让QTreeWidget某一列可以编辑,如何实现某一列控件的自定义化 1.如何让树控件的第二栏变成QSpinBox? 首先我们要了解类QItemDelegate,这是个委托类。委托类可用于很多地方,比如QTreeWidget,QTableWidget等等。要想实现自定义的委托类,我们可以继承QItemDelegate,然后实现4个方法,分别是createEditor(),setEditorData(),updateEditorGeometry() ,s 阅读详情

看下文档描述先

enum Qt::ItemFlag
flags Qt::ItemFlags

This enum describes the properties of an item:

ConstantValueDescription
Qt::NoItemFlags0It does not have any properties set.
Qt::ItemIsSelectable1It can be selected.
Qt::ItemIsEditable2It can be edited.
Qt::ItemIsDragEnabled4It can be dragged.
Qt::ItemIsDropEnabled8It can be used as a drop target.
Qt::ItemIsUserCheckable16It can be checked or unchecked by the user.
Qt::ItemIsEnabled32The user can interact with the item.
Qt::ItemIsTristate64The item is checkable with three separate states.

Note that checkable items need to be given both a suitable set of flags and an initial state, indicating whether the item is checked or not. This is handled automatically for model/view components, but needs to be explicitly set for instances of QListWidgetItem,QTableWidgetItem, and QTreeWidgetItem.

The ItemFlags type is a typedef for QFlags<ItemFlag>. It stores an OR combination of ItemFlag values.

 

注意最后一句,ItemFlags存储的是几个ItemFlag的逻辑或的结果。

所以设置某个Item可编辑时,可以item->setFlags(Qt::ItemIsEditable |Qt::ItemIsEnabled);

 

 

QTreeWidget中设置字体颜色

QTreeWidget *A = new QTreeWidget;
QTreeWidgetItem *child=new QTreeWidgetItem(QStringList(tr(portDesAndName.c_str())));
/*蓝色表示正在工作*/
child->setForeground(0,QBrush(QColor(Qt::blue)));
A->addChild(child);

 

 

 访问QTreeWidget子节点的方法
QTreeWidget中有个itemAt函数,我以为像是QTabelWidget那样可以直接定位到节点的,结果试了下,发现不行。后来发现,对于顶层节点,可以使用treeWidget->topLevelItem(int index)返回,然后对于返回的item,可以一直使用item->child(int column)向下遍历。
关于QTreeWidget的HeadView设置背景图片问题
我们可以很容易的使用setstylesheet或者其他设置背景的方法给控件设置背景,对于QTreeWidget,它是一个Widget的子类,那么当然我们可以使用样式表对其设计背景。
通常代码格式如下:
ui.treeWidget->setObjectName("treeWidget");
ui.treeWidget->setStyleSheet("QWidget#treeWidget{background-image: url(./pic/netJiedianBg.png);}");
但是,实际情况并不像我们想象的那么乐观,例如以下设计好的图片


我们在实际实现时,如果只使用上面的代码后的实际情况是如下所示

可以看到最上面有一条其实还是默认的颜色,这个就需要我们再单独设置其背景图片
首先要把那个横条返回,其实就是Treewidget的Header,然后对返回到Header设置背景即可,方法可能有多种,把Header作为一个Widget使用样式表加图片的方法不知道为什么不行,所以换了种方法,在header里添加一个label,然后设置其布局充满整个HEADER,在label上加图片。经过试验是可以的。
代码如下:
QHeaderView *headview = ui.treeWidget->header();
QLabel *label = new QLabel("aaa");
label->setPixmap(QPixmap("./pic/netJiedian.png"));
QHBoxLayout *lay = new QHBoxLayout;
lay->setMargin(0);
lay->addWidget(label);
headview->setLayout(lay);
添完后的效果图如下:

 


 


获得Qtreewidget 上双击的那行的数据简单demo

 

 

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

ui->treeWidget->setColumnCount(1);
    QTreeWidgetItem *root=new   QTreeWidgetItem(ui->treeWidget,QStringList(QString("ROOST")));
    QTreeWidgetItem *leaf=new   QTreeWidgetItem(root,QStringList(QString("children")));
    root->addChild(leaf);
    QTreeWidgetItem *leaf1=new   QTreeWidgetItem(root,QStringList(QString("children1")));
     root->addChild(leaf1);

    QTreeWidgetItem *leaf2=new   QTreeWidgetItem(root,QStringList(QString("children2")));
     root->addChild(leaf2);
    QTreeWidgetItem *leaf3=new   QTreeWidgetItem(root,QStringList(QString("children3")));
     root->addChild(leaf3);

    QList<QTreeWidgetItem *>rootList;
    rootList<<root;
    ui->treeWidget->insertTopLevelItems(0,rootList);
}

 

在

private slots:
    void on_treeWidget_doubleClicked(QModelIndex index);

void MainWindow::on_treeWidget_doubleClicked(QModelIndex index)
{
    index=ui->treeWidget->currentIndex();
    ui->lineEdit->setText(index.data().toString());
}

QT-使TreeWidget的项目可编辑 效果: 主要 阅读详情

相关推荐

在QTableWidget中如何设置只让某一列可编辑

可以通过QTableWidget的setItem()方法以及Qt的ItemFlags枚举来设置QTableWidgetItem的属性,从而实现只让某一列可编辑的功能。其中setEditTriggersForColumn方法如下其中,tableWidget是一个QTableWidget对象,通过调用它的rowCount()方法和item()方法来遍历表格的所有行和列,从而获取每个表格项,并设置相应的属性。

mirana的专栏 6214

pyqt QTreeWidgetItem设置字体颜色

treeItem=QTreeWidgetItem(parent)#parent是QTreeWidget或QTreeWidgetItem对象 treeItem.setText(0,"Hello,World") treeItem.setForeground(0,Qt.green)#可将字体颜色变为绿色,更详细的设置请看QBrush 参考search_star的博客

weixin_41530622的博客 6100

QTreeWidget控件设置某列可编辑

QTreeWidgetItem 类里面setFlags()函数可以设置整行Item可编辑,无法设置单独某列。                                        想设置单独某列可编辑,可以利用QTreeWidget提供的SIGNAL itemDoubleClicked() 加上QTreeWidegetItem的setFlags()达到要求 conne

txg703003659的专栏 7688

QTreeWidgetItem可编辑

QTreeWidgetItem* pChildItem = new QTreeWidgetItem(pParentItem); //设置可编辑、可选择。 pChildItem ->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable); pChildItem ->setText(0, "XXXX"); pChildItem ->setData(0, ROLE, structComItem.C);//设.

sinat_33419023的博客 2290

python 设置QtreeWidget单列可编辑

python 设置QtreeWidget单列可编辑 代码作用:双击QtreeWidgetItem后判断被点击的Item所处列,处于第2列则设置Item可编辑,处于其它列则不可编辑。 self.treeWidgetProgram.itemDoubleClicked.connect(self.setEditable) def setEditable(self, item, column): if(column == 1): item.setFlags(item.fla

sinat_38456836的博客 1514

QTreeWidget代码

#include <QTreeWidget> #include <QHeaderView> { // 实例化树结构 QTreeWidget *pTreeWidget = new QTreeWidget(this); // 设置标头 pTreeWidget->header()->hide(); pTreeWid...

HGT_FreeX的博客 303

QTreeWidget 设置item可编辑和去掉可编辑属性。 以及添加编辑完成信号。

转载 http://blog.sina.com.cn/s/blog_6f39635f01016031.html

weixin_29898767的博客 3152

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

Q82556499的博客 4169

QTreeWidget支持双击编辑Item节点的内容

QTreeWidget使用过程中经常会需要对Item进行编辑,目前比较方便的是双击Item,然后Item呈现编辑的状态,完成编辑后更新Item的内容。要实现这样的功能,其实只要将Item设置为可编辑即可,但是QTreeWiget默认的可编辑状态不好看,因此我们需要对可编辑的状态重新定义,这里仍然用到代理绘制。首先看效果图: 原始加载的图如下: 双击编辑的图: 编辑完成后的图: 下面详细介绍实现: 1 添加Item时设置为可编辑 zhangsanroot->setFlags(zhangsanroo

juqing24的博客 7309

雷电模拟器+Google Play服务配置全指南:从安装到定位问题解决

本文详细介绍了雷电模拟器配置Google Play服务的全流程,包括版本选择、组件安装、定位服务调试及网络问题排查。针对安卓开发者的常见挑战,提供从基础到高级的解决方案,帮助优化测试环境稳定性与定位精度。

weixin_30399821的博客 1236

巨量千川M-API实战:5分钟搞定短视频计划数据自动获取(Python版)

本文详细介绍了如何利用巨量千川M-API和Python快速搭建自动化工具,实现短视频计划数据的自动获取。通过实战代码演示了从环境准备、Token管理到核心数据接口调用的完整流程,帮助电商运营和技术开发者告别手动导出,高效完成数据汇总与分析。

weixin_29325515的博客 1359

Qt 之 QTreeWidget

#include &lt;QTreeWidget&gt; #include &lt;QHeaderView&gt;   {     // 实例化树结构     QTreeWidget *pTreeWidget = new QTreeWidget(this);     // 设置标头     pTreeWidget-&gt;header()-&gt;hide();     pTree...

fedora的博客 1233

FPGA实战:手把手教你用Verilog驱动4.3寸RGB触摸屏(附完整代码)

本文详细介绍了如何使用Verilog语言在FPGA上驱动4.3寸RGB触摸屏,包括时序设计、信号交互原理及完整代码实现。通过双计数器引擎设计和参数化模块,开发者可以高效构建800*480分辨率的显示驱动,并解决工程实践中的信号完整性和时序收敛问题。

rice5的博客 702

QTreeWidget

#include <QTreeWidget> #include <QHeaderView> { // 实例化树结构 QTreeWidget *pTreeWidget = new QTreeWidget(this); // 设置标头 pTreeWidget->header()->hide(); pTreeWid...

lavanana的博客 689

手把手教你用示波器搞定PCIe 5.0 REFCLK时钟信号测量(附完整参数解读)

本文详细介绍了如何使用示波器进行PCIe 5.0 REFCLK时钟信号测量,包括示波器与探头的选择、关键参数的测量方法及解读,以及实战中的常见问题与解决方案。通过手把手教学和完整参数解读,帮助硬件工程师高效完成时钟信号测量,确保系统稳定性。

weixin_28704565的博客 359

AOSP 8.0.0编译中的ANDROID_DATA缺失问题解决方案

在AOSP编译过程中,环境变量和路径设置的正确性至关重要。遇到相关的错误时,检查并修正环境配置通常是解决问题的关键。希望本文提供的分析和解决方案能帮助你顺利编译AOSP。

m0_74337424的博客 398

Pyqt5 QTreeWidget使用

在使用pyqt5编写UI时,QTreeWidget对象可以提供预定义模型的树形视图显示。QT文档对QTreeWidget定义如下:The QTreeWidget class is a convenience class that provides a standard tree widget with a classic item-based interface similar to that u...

weixin_42052836的博客 1万+

直流母线电压采集与缓冲调理电路

本文介绍了一种直流母线电压采集与缓冲调理电路的设计与应用。该电路通过电阻分压网络将高压直流母线电压降至适合ADC采样的范围,并采用运放电压跟随器实现高输入阻抗和低输出阻抗的缓冲功能,有效提高采样精度和抗干扰能力。文章重点阐述了低输出阻抗对驱动负载、抗干扰和电压稳定的重要性,并列举了该电路在工业电源监测、电动汽车BMS、通信电源和储能系统等领域的典型应用场景。

qq_37999850的博客 319

PyQt QTreeWidgetItem设为可编辑

在Python中直接使用QTreeWidgetItem无法编辑,只需加上一句setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable)即可 import sys from PyQt5 import QtCore from PyQt5.QtWidgets import * class TreeWidget(QTreeWidget): ...

XerCis的博客 4344

Unet++改进33:添加ConvolutionalGLU(2024最新改进方法)|紧凑的网络结构和高效的运算

由于残差连接的深度退化效应,许多依赖堆叠层进行信息交换的高效视觉变形模型往往不能形成足够的信息混合,导致视觉感知不自然。为了解决这个问题,在本文中,我们提出了聚合注意力,这是一种基于仿生设计的令牌混合器,它模拟生物中央凹视觉和连续眼运动,同时使特征映射上的每个令牌具有全局感知。此外,我们结合了可学习的令牌,与传统的查询和键交互,这进一步多样化了亲和矩阵的生成,而不仅仅依赖于查询和键之间的相似性。我们的方法不依赖于堆叠进行信息交换,从而有效地避免了深度退化,实现了自然的视觉感知。

AIcurator的博客 684

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

右键属性修改QTreeWidget

rootItem=new QTreeWidgetItem(ui->treeWidget,QStringList(QString(prjName)));//添加节点 rootItem->setFlags(rootItem->flags() | Qt::ItemIsEditable);//支持重命名 void SlotRenameItem(QS...

weixin_29898767的博客 366

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Qt中QListWidget、QTableWidget、QTreeWidget的增删改查操作

其实,关于这个东西一直想写,但是因为懒,就一直没动笔(捂脸)。 话不多说,进入正题。 对于QListWidget、QTableWidget、QTreeWidget这三个widget来说,它们几个是Model/View的特殊化,使用较为简单。 就这三个窗口的使用来个汇总,详见下方。 有一点说明一下,这里仅仅列举常用的方法,并且仅仅写了个方法名字,具体的参数以及返回值之类的,需要去好好看看手册。 1.QListWidget QListWidget的使用较为简单,这是一种最简单的widget类型。 增: 常用

“时光清浅,不觉多年”的博客 2825

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

PyQT QTreeWidget中设置右键菜单重命名

为了实现通过右键菜单重命名QTreeWidget中item值,通过右键开启编辑的输入框,回车提交后关闭输入框,且不能够通过双击再次开启输入框。主要思路是,在提交编辑结果时设置item为不可编辑,从而避免双击再次开启输入框。

weixin_46340815的博客 959

QTreeWidgetItem 点击可编辑修改

enum Qt::ItemFlag flags Qt::ItemFlags This enum describes the properties of an item: Constant Value Description Qt::NoItemFlags 0 It does not have any properties set. Qt::ItemIs

Eric的专栏 4222

【转载】10.1\t使用项目视图类(Using the Item View Convenience Classes)

使用Qt的项目视图便利的子类通常比定义一个自己的模型更简单,适合无需分离模型和视图的操作。在第四章中我们使用了该技术,我们从QTableWidget和QTableWidgetItem派生子类来实现列表功能。 本节我们将展示如何使用便利的项目视图子类来显示项目。第一个例子展示了一个只读的QListWidget,第二个例子展示了一个可编辑的QTableWidget,第三个例子展示了一个只读的Qtre

向上吧,少年的专栏 591

QTreeWidget双击编辑子节点:实现智能交互的利器

QTreeWidget双击编辑子节点:实现智能交互的利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代GUI应用程序设计中,用户交互的智能化和便捷性是提升用户体验的关键。QTreeWidget作为Qt框架中一个强大的控件,常用于展示树状结构数据。本项目正是针对QTreeWidget的一个扩展功能,实现了用户双击子节点后即可编辑其内容的功能。通过支持多种编辑框样...

gitblog_06745的博客 1108
上一篇: 让QTreeWidget中的项目有复选框(转贴)
下一篇: Qt标准对话框之QFileDialog
juneman
博客等级 码龄19年 141粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值