• 9276阅读
  • 11回复

[提问]如何把两个QFileInfoList的列表连接起来? [复制链接]

上一主题 下一主题
离线anthonymo200
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-17
定义了两个QDir的变量dir1, dir2;
定义了两个QFileInfoList类指针 *list1, *list2.
使用dir.entryInfoList()函数给两个变量赋值。
list1 = dir1.entryInfoList();
list2 = dir2.entryInfoList();
想要把list2的内容连接到list1的尾端。

我尝试过append函数,不成功;请懂的人指点一下。谢谢!
[ 此帖被anthonymo200在2011-05-17 15:10重新编辑 ]
离线jdwx

只看该作者 1楼 发表于: 2011-05-17
用+号
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线anthonymo200
只看该作者 2楼 发表于: 2011-05-20
回 1楼(jdwx) 的帖子
用+号, 编译的时候提示:error: invalid operands of types ‘const QFileInfoList*’ and ‘const QFileInfoList*’ to binary ‘operator+’
离线zhangyueyi87
只看该作者 3楼 发表于: 2011-05-20
QFileInfoList = QLIst<QFileInfo>操作和QList一样 直接用list1<<list2就好了
[ 此帖被zhangyueyi87在2011-05-20 10:24重新编辑 ]
离线roywillow

只看该作者 4楼 发表于: 2011-05-20
你是定义的指针……?人家QDir那个函数返回的可不是指针,并且两个指针相加肯定会有问题的吧……
QFileInfoList就是个QList罢了,参考QList的文档就是了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线银色子弹

只看该作者 5楼 发表于: 2011-05-20
list1->append(*list2);
应该可以吧!
离线anthonymo200
只看该作者 6楼 发表于: 2011-05-20
回 4楼(roywillow) 的帖子
现在用的是Qte-3.3.8b版本,  在此版本的qdir.h文件里面找到看到这样的定义
typedef QPtrList<QFileInfo> QFileInfoList;
typedef QPtrListIterator<QFileInfo> QFileInfoListIterator;
也就是说是用了QPtrList的类,  
QPtrList的所有成员函数如下:
QPtrList()
~QPtrList()
append()
at()
autoDelete()
clear()
compareItems()
contains()
containsRef()
count()
current()
currentNode()
deleteItem()
find()
findNext()
findNextRef()
findRef()
first()
getFirst()
getLast()
inSort()
insert()
isEmpty()
last()
newItem()
next()
operator!=()
operator=()
operator==()
prepend()
prev()
read()
remove()
removeFirst()
removeLast()
removeNode()
removeRef()
replace()
setAutoDelete()
sort()
take()
takeNode()
toVector()
write()
没有发现那个函数是可以把两个列表指针连接起来的。  
离线anthonymo200
只看该作者 7楼 发表于: 2011-05-20
回 3楼(zhangyueyi87) 的帖子
使用 list1<<list2 , 编译的时候出错, 错误提示:error: invalid operands of types ‘const QFileInfoList*’ and ‘const QFileInfoList*’ to binary ‘operator<<’
离线anthonymo200
只看该作者 8楼 发表于: 2011-05-20
回 5楼(银色子弹) 的帖子
使用 list1->append( *list2 ); 编译错误, 提示如下: error: no matching function for call to ‘QPtrList<QFileInfo>::append(const QPtrList<QFileInfo>&) const’
离线galaxian
只看该作者 9楼 发表于: 2011-05-20
遍历搞贝
离线roywillow

只看该作者 10楼 发表于: 2011-05-21
append() 应该能连接两个列表吧
至少Qt4里QList类能这么干
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线XChinux

只看该作者 11楼 发表于: 2011-05-21
append()或者   << 操作符
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个