在QTreeWidget中删除QTreeWidgetItem

我就想删除topLevelItem  stackoverflow上是这样说的:

http://stackoverflow.com/questions/9392051/how-do-i-delete-a-top-level-qtreewidgetitem-from-a-qtreewidget

http://stackoverflow.com/questions/9986231/getting-a-qtreewidgetitem-list-again-from-qtreewidget

以下代码ProjDataView这个类只是单纯继承QTreeWidget

 1 #include "ProjDataView.h"
 2
 3
 4
 5
 6 int main(int argc, char *argv[])
 7 {
 8 QApplication a(argc, argv);
 9
10
11 ProjDataView* dataView = new ProjDataView(0);
12
13 for (int i = 0; i < 5; ++i){
14
15 QTreeWidgetItem* item = new QTreeWidgetItem(QStringList() << QString("test") + QString::number(i));
16
17
18 dataView->addTopLevelItem(item);
19
20 }
21
22
23
24
25 for (int i = 0; i < dataView->topLevelItemCount(); ++i){
26
27 delete dataView->takeTopLevelItem(i);
28
29 }
30
31
32
33
34 dataView->show();
35
36
37
38
39
40
41 //MyManagerWidget* mng = new MyManagerWidget(0);
42
43
44 //mng->show();
45
46 return a.exec();
47
48 }

如果用上述的代码是不对的,所以从窗口中看出才删除了test0,test2,test4.

如果要全删除的话可以这样:

while(dataView->topLevelItemCount() > 0){delete dataView->topLevelItem(0);}


那个for里边每执行一次dataView->topLevelItemCount()都会变化,
相应的dataView->topLevelItem(i),也是会变化的。完全不对。

不过我最终考虑用clear

参照这个:http://stackoverflow.com/questions/13062327/how-to-delete-qtreewidgetitem

references:

http://tieba.baidu.com/p/3849541021?pid=70405672647#70405672647

时间: 2024-10-27 07:05:26

在QTreeWidget中删除QTreeWidgetItem的相关文章

Linux中删除文件,磁盘空间未释放问题追踪

在客户使用我们产品后,发现一个问题:在删除了文件后,磁盘空间却没有释放.是有进程在打开这个文件,还是其他情况?我们一起来看看一下两个场景 一. 场景一:进程打开此文件 当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除.当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间. 我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过"lsof"命令去查看正在使用该文件的

运维之我的docker-swarm集群中删除节点和服务

删除swam节点 如果有的确实想要从swarm集群中删除,你应该先把这个节点容器排空,然后再把节点从集群中去掉. 排空节点(其实就是把这个节点上的容器先从其它节点启动,再停掉排空节点上的容器,保证你定义服务的预先状态不受影响) docker node update --availability drain g36lvv23ypjd8v7ovlst2n3yt 删除指定节点 docker node rm  node9 docker node rm --force node9 删除服务 删除服务以后容

ODI中删除数据的处理

一.前提知识:数据从源数据库向数据仓库抽取时,一般采用以下几种方式: 全抽取模式如果表的数据量较小,则可以采取全表抽取方式,以TRUNCATE/INSERT方式进行数据抽取. 基于时间戳的抽取模式如果源数据表是不可更新的数据(如大多数事务处理数据)或者是不可删除数据(只能失效历史记录的情况),则根据变更时间戳,抽取最新变更的数据进行同步. 日志分析如果没有更新时间戳,或者源数据存在删除的情况,则可以进行日志分析,来执行最新数据变更的同步. 说明:时间戳的方式如果要处理删除数据的情况,需要在源表创

git中手动删除的文件如何在git中删除

在日常开发中,我们可能或手动删除(delete键删除的)一些文件,然而我们本来应该是用git rm fileName命令删除的,但是现在我们手动删除了,那么要如何在git里面讲那些手动删除的文件删除呢? 我们这里有两种方法可以在git中删除那些手动删除(delete键删除的)的文件: 第一种就是用 git rm files 删除你手动删除的文件或文件夹. 当然,如果你删除的文件有很多,而且分布在不同的文件夹中,使用第一种 git rm files 的方法,显然不方便,效率也很低下,那么有没有更快

php数组中删除元素之重新索引

如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊 <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> print_r($arr) 之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d ) 那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是 array_splice(): <?ph

“未能从策略 Default Domain Policy 中删除应用程序 Microsoft Office Professional Plus 2010”错误解决

操作过程: 笔者通过组策略部署Office 2010时,由于部署方式不对,尽管在"软件部署"中删除了Office 2010,但启动计算机时,总提示"正在删除托管的Office 2010",同时日志文件中出现提示"未能从策略 Default Domain Policy 中删除应用程序 Microsoft Office Professional Plus 2010.错误为: %%1603". 解决方法: 通过Windows Installer Cle

f2fs解析(十)nid 如何从nat_root中删除

上面我们谈到了一个nid如何从free_nid中转移到node_info中去[分别有一个链表和一棵基数树搭伙做事],讲free_nid时,详细说明了free_nid中是如何进如何出的,上一篇说了nid是如何进入nat_root的,当然一个nid进入nat_root的情况不止如此呢,还包括如果读磁盘中已经存在的一个nid,这个nid的缓存也是存在这里的. 那么现在说说nat_root中的nid是如何刷回去的! 涉及一个函数:__del_from_nat_cache 两个地方调用:1)f2fs_ba

在Android Studio中删除module

当你想在Android Studio中删除某个module时,大家习惯性的做法都是选中要删除的module,右键去找delete.但是 在Android Studio中你选中module,右键会发现没有delete,如图: 为什么会没有delete按钮,不科学啊,难道是Android Studio的bug或者设计组考虑不周.其实这边没有delete按钮主要原因是因为Android Studio对module做了一个保护机制,就是一个module你是不能随意删除的,要删除你必须得先把module从

从工程中删除Cocoapods

从工程中删除Cocoapods 分类: Xcode iOS 2013-08-24 01:11 5512人阅读 评论(2) 收藏 举报 CocoapodsiOSXcode 1. 删除工程文件夹下的Podfile.Podfile.lock及Pods文件夹 2. 删除xcworkspace文件 3. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用 4. 在工程设置中的Build Phases下删除Check Pods Manifes