精华内容
下载资源
问答
  • //遍历 QTreeWidgetItem,根据文本确认选中的树状图节点,并显示在下拉框中 QTreeWidgetItemIterator iterator(unitTree); while (*iterator) { if ((*iterator)->text(0) == 待比较文本) { //找到目标 item...
    //遍历 QTreeWidgetItem,根据文本确认选中的树状图节点,并显示在下拉框中
            QTreeWidgetItemIterator iterator(unitTree);
            while (*iterator) {
                if ((*iterator)->text(0) == 待比较文本) {
                	//找到目标 item ,做相关操作
                    QTreeWidgetItem *item = (*iterator);
                    unitTree->setCurrentItem(item);
                    ......
                    break;
                }
                ++iterator;
            }
    
    展开全文
  • QTreeWidget搜索功能---遍历QTreeWidget

    千次阅读 2019-08-27 11:39:02
    1、需求:查找QTreeWidget中满足条件的QTreeWidgetItem显示,不满足条件的隐藏 2、接口QTreeWidgetItem::setHidden(bool), true为隐藏,false为显示 void OnFindItem(const QString &qsFilter) { ...

    1、需求:查找QTreeWidget中满足条件的QTreeWidgetItem显示,不满足条件的隐藏

    2、接口QTreeWidgetItem::setHidden(bool),  true为隐藏,false为显示

    void OnFindItem(const QString &qsFilter)
    {
        QTreeWidgetItemIterator it(ui->treeWidget);
        while (*it) 
        {    
            //QTreeWidgetItem是否满足条件---这里的条件可以自己修改
            if((*it)->text(0).contains(qsFilter))
            {
                (*it)->setHidden(false);
                QTreeWidgetItem *item = *it;
                //显示父节点
                while (item->parent())
                {
                    item->parent()->setHidden(false);
                    item = item->parent();
                }
            }
            else
            {
                 //不满足满足条件先隐藏,它的子项目满足条件时会再次让它显示
                (*it)->setHidden(true);
            }
            ++it;
        }
    }

     

    展开全文
  • PYQT5遍历QTreeWidget对象

    2021-02-20 09:40:08
    因为树以及其中的item我是qt designer设计的,所以单个设置unchecked太麻烦,就想直接用程序完成。 QT官方的例子是c++的: QTreeWidgetItemIterator it(treeWidget); while (*it) { if ((*it)->text(0) == ...

    初始化树控件,要将所有选项增加复选框并设为未选中。因为树以及其中的item我是qt designer设计的,所以单个设置unchecked太麻烦,就想直接用程序完成。

    QT官方的例子是c++的:

    QTreeWidgetItemIterator it(treeWidget);
    while (*it) {
       if ((*it)->text(0) == itemText)
       (*it)->setSelected(true);
       ++it;
    }

     

    明显是通过迭代的方式,所以第一次尝试改为python时:

    it = QTreeWidgetItemIterator(self.tree_task)
    
    # print(it)
    
    while it:
    
        it.setCheckState(0, Qt.Unchecked)
    
        it = next(it)

    会报错it不是迭代器对象(next函数),然后打印查看it类型,发现是<PyQt5.QtWidgets.QTreeWidgetItemIterator object at 0x00000146B4FBA270>。

    查看QTreeWidgetItemIterator的类定义:

    class QTreeWidgetItemIterator(__sip.simplewrapper):
    
        """
    
        QTreeWidgetItemIterator(QTreeWidgetItemIterator)
    
        QTreeWidgetItemIterator(QTreeWidget, flags: QTreeWidgetItemIterator.IteratorFlags = QTreeWidgetItemIterator.All)
    
        QTreeWidgetItemIterator(QTreeWidgetItem, flags: QTreeWidgetItemIterator.IteratorFlags = QTreeWidgetItemIterator.All)
    
        """
    
        def value(self): # real signature unknown; restored from __doc__
    
            """ value(self) -> QTreeWidgetItem """
    
            return QTreeWidgetItem
    
    
    
        def __iadd__(self, *args, **kwargs): # real signature unknown
    
            """ Return self+=value. """
    
            pass
    
    
    
        def __init__(self, *__args): # real signature unknown; restored from __doc__ with multiple overloads
    
            pass
    
    
    
        def __isub__(self, *args, **kwargs): # real signature unknown
    
            """ Return self-=value. """
    
            pass

    定义是没问题的,但是生成的是一个widget对象,所以应该用value函数,获取item对象,然后进行自己想要进行的操作。操作完后,c++下的++it即对应python中的__iadd__函数。

    因此,尝试改为:

    it = QTreeWidgetItemIterator(self.tree_task)
    
    # print(it)
    
    while it.value():
    
        it.value().setCheckState(0, Qt.Unchecked)
    
        it = it.__iadd__(1)

    OK,实现功能。

    展开全文
  • int size = mTreeWidget->topLevelItemCount(); QTreeWidgetItem *child; for (int i = 0; i < size; i++) { child = mTreeWidget->topLevelItem(i); int childCount = child-...

    int size = mTreeWidget->topLevelItemCount();
        QTreeWidgetItem *child;
        for (int i = 0; i < size; i++)
        {
            child = mTreeWidget->topLevelItem(i);
            int childCount = child->childCount();
            for (int j = 0; j < childCount; ++j)
            {
                QTreeWidgetItem * grandson = child->child(j);
            }
        }

    展开全文
  • 话不多说,程序运行如下:...就可以实现在QTreeWidgetItem放CheckBox了,关于变量,我们先把他放到一个迭代器里面然后进行遍历QTreeWidgetItemIterator。修改官方的例子,就很容易实习这个功能:下面给出源码widge...
  • 在Qt里,要是要遍历QTreeWidget所有节点,其中一个方法就是用QTreeWidgetItemIterator,但有个烦人的地方,这个东西在C++里还行,但在python里就太不python了。 [code="python"] it = ...
  • 前言:作为一只菜鸟,无法像诸位大神那样在描述问题之前深入浅出地介绍背景TAT,只能默认来看这篇文章的人对QTreeWidget已经有过了解,想在python中实现对其下所有Item遍历。  由于试手的软件里需要实现按下...
  • 通过递归遍历添加子项到treewidget中,测试代码已通过,举例为遍历添加/home/XXX下所有文件。解析和详细代码如下:  1.首先在main函数中创建... QTreeWidgetItem* root = new QTreeWidgetItem(QStringList()  r
  • 1. QTreeWidget删除整个TreeWidget 使用递归方式来删除节点下的子节点。分析:如果当前节点没有子节点那么就直接删除,如果有子节点就进入子节点继续删除...void MainWindow::removeItem(QTreeWidgetItem *item) {
  • QTreeWidgetItem*> items; //先获取顶层节点 int childcount = ui->treeWidget->topLevelItemCount(); for(int i = 0; i < childcount; i++) { items << ui->treeWidget-&
  • demo 好处和坏处 对比网上的办法 准备一个小demo 常见小demo 简介:商品种类和商品的树形嵌套结构demo ...from PyQt5.QtWidgets import QTreeWidgetItem, QTreeWidget, QWidget, QVBoxLayout, QPushButton,
  • QTreeWidget的子项在插入后,想要通过子项中的 text 内容找到对应的子项,暂时没有发现官方提供的函数中可直接使用的方法(若有欢迎评论中告诉我)。 在此使用迭代器进行遍历 QTreeWidgetItemIterator ,查找对应的...
  • //文件中tree1和treeList分别在头文件...QTreeWidgetItem*> tree1; QStringList treeList; #include “mainwindow.h” #include “ui_mainwindow.h” #include #include #include #include #include #include<...
  • 关于qt中qlistwidget列表控件,qtablewidget表格控件,qtreewidget树形控件跟vc中clistbox,clistctrl,ctreectrl使用差不多,都是通过一个对应的item对象(QListWidgetItem,QTableWidgetItem,QTreeWidgetItem),来...
  • QTreewidget

    2020-05-18 16:37:18
    1.遍历widget QTreeWidgetItemIterator item(tree_wgt); while(*item) { (*item)-> ... ++item; }
  • QT控件QTreeWidget的说明

    2017-09-12 16:37:44
    1)takeTopLevelItem(int) :QTreeWidgetItem * 此函数只能访问第一个根节点,所以无法实现根节点的遍历 2)topLevelItem(int) const:QTreeWidgetItem * 此函数可以根据给定的参数来访问对应的根节点,根节点个数可以...
  • Qtreewidget显示文件夹和文件夹内容

    千次阅读 2018-12-02 20:35:13
    通过递归遍历添加子项到treewidget中,测试代码已通过,举例为遍历添加/home/XXX下所有文件。解析和详细代码如下: ... QTreeWidgetItem* root = new QTreeWidgetItem(QStringList()&lt;&lt...
  • 上一篇已经实现了小项目的界面,这一篇主要实现Tree的内容。在学习编程语言的时候,...递归没什么好说的,直接上,只是QTreeWidget的子项叫QTreeWidgetItem,每个子项都是一个QTreeWidgetItem,所以,需要自定义js...
  • 用到的信号是void itemChanged(QTreeWidgetItem* item, int column); 我们在使用Qt的树控件QTreeWidget的时候,经常会遇到需要检查当前节点的选中状态; 一般一个节点有三个状态: A:当前节点以及所有子节点都被选中...
  • 实现的思路,首先需要一个父节点,当做初始节点...void EP_WorkListWgt::SetData(QTreeWidgetItem *rootItem,QString i_path) { QDir dir(i_path); QDir dir_file(i_path); dir_file.setFilter(QDir::Files | QD
  • QTreeWidgetItem*> stack; stack.push(item); while (!stack.isEmpty()) { QTreeWidgetItem *i = stack.pop(); i->view = 0; for (int c = 0; c < i->children.count(); ++c) { stack.push(i-&...
  • 2021-04-14

    2021-04-14 17:46:46
    PyQt5 遍历QTreeWidget def traverse: iterator = QtWidgets.QTreeWidgetItemIterator(self.folder_tree.tree) while iterator.value(): item = iterator.value() if item.checkState(0) == QtCore.Qt....
  • Qt 递归方式遍历目录

    千次阅读 2015-03-15 16:23:21
    2.找到当前目录下的文件(不包括文件夹,QDir可以进行筛选),存入QFileInfoList,然后按顺序存入QTreewidgetItem,并添加至根节点 3.找到当前目录下的第一个文件夹,作为一个新的根节点 4.重复2,3过程,直到没有...
  • 这是以前做过的例子,之前是参考的网上的例子,觉得遍历次数太多,效率不行。自己尝试优化修改了一番。小试牛刀,欢迎拍砖。...QTreeWidgetItem的复选框,可以通过setCheckState(int column,Qt::CheckState stat...
  • 这是以前做过的例子,之前是参考的网上的例子,觉得遍历次数太多,效率不行。自己尝试优化修改了一番。小试牛刀,欢迎拍砖。效果如下图: ...QTreeWidgetItem的复选框,可以通过setCheckState(int colum...
  • Qt 文件树的实现

    2020-08-08 21:40:04
    文件树的构建使用的是使用深度优先遍历的方式扫描所选择的文件夹,并将所扫描的符合要求的文件创建QTreeWidgetItem对象并规定所属关系 文件的折叠与展开这个功能本身并不需要我们自己去实现,QTreeWidget控件和...
  • QT的Listwidget控件使用

    2021-03-23 15:24:09
    另一类是 Item Widgets,包括 QListWidget、QTreeWidget 和 QTable Widget。QListWidget其实是QListView的遍历类,QListView 是基于模型/视图(Model/View)结构,视图(View)与模型数据(Model Data)关联实现数据的...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

遍历qtreewidgetitem