• 4279阅读
  • 9回复

qlistview和共享文件的问题 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2011-10-19
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-10-22) —
关键词: 目录,共享
      我做了一个群聊工具(界面如下图),在qlistview里显示用户名,我想实现的是双击某个用户名,弹出该用户的共享文件目录,开始我想用信号和槽实现,但是无法定义信号量和槽,因为用户名又不是控件又不是函数的。后来想用nameModel.index(i)操作,但是如果是循环查询等待某个用户被双击的话,太耗资源了。我现在的问题是:
      (1).如上所述;
    (2).双击后弹出该用户的共享目录是不是先定义一个函数来获取被选中用户的ip地址和端口,接着再定义一个dialog利用qlistview进行显示该用户定义的共享文件目录。
   (3).在dialg,用户共享目录下,双击即下载该怎么操作,定义一个信号和槽实现?

[attachment=undefined]
谢谢各位大侠先,网上没有找到相应功能的源码,没有得参考,所以只好自己一点一点啃。哈哈!大侠们,知道又有空的就指点下小弟!不胜感激!!

只看该作者 1楼 发表于: 2011-10-19
离线ppdayz

只看该作者 2楼 发表于: 2011-10-20
回 楼主(键盘爱鼠标) 的帖子
我想你的nameModel是继承QAbstractItemModel的吧
可以用
bool QAbstractItemModel::setItemData ( const QModelIndex & index, const QMap<int, QVariant> & roles ) [virtual]
来设置data,然后双击的时候取出data进行操作

只看该作者 3楼 发表于: 2011-10-20
回 2楼(ppdayz) 的帖子
不是继承QAbstractItemModel类的,是继承QStringListModel!那我试试QAbstractItemModel,看行不行!哈哈!谢谢你!对了,继承QStringListModel的有木有实现双击弹出dialog和获取该用户信息的,如果要改,model要改好多!!。。。。
离线ppdayz

只看该作者 4楼 发表于: 2011-10-20
QStringListModel是继承 QAbstractListModel, 而QAbstractListModel是继承QAbstractItemModel的
所以可以直接重写
bool QAbstractItemModel::setItemData ( const QModelIndex & index, const QMap<int, QVariant> & roles ) [virtual]这个
双击的话你要在view里面做
还是这个思路
你在写model的时候把信息都写在modelindex里,然后在view中表现出来
然后双击view的index,触发slot,然后取得信息,弹出对话框

只看该作者 5楼 发表于: 2011-10-20
回 4楼(ppdayz) 的帖子
好的!我马上试试!太谢谢你了!

只看该作者 6楼 发表于: 2011-10-20
回 4楼(ppdayz) 的帖子
哈哈!我是先connect这个listview,doubleclicked(),share,show(),接着再在share里,   int row =nameListView->currentIndex().row();
    QModelIndex user=nameModel.index(row);从而知道它是双击了那个用户。哈哈!
但是第二个问题还不知道怎么解决!
我能获取该用户的ip,端口号,要打开的目录路径也知道了,但是有木有这么个函数,只要我给该用户的ip,端口号,还有路径它就可以在listview里显示该目录下的内容呢!qdir好像只能打开本地的目录!!!求大侠再指点指点!!!不甚感激!
离线ppdayz

只看该作者 7楼 发表于: 2011-10-21
回 6楼(键盘爱鼠标) 的帖子
打开远程目录的话要用ftp等协议的
不知道你是什么协议
这里有个例子,是关于ftp的,照着抄抄改改就可以了
http://doc.qt.nokia.com/latest/network-qftp.html

只看该作者 8楼 发表于: 2011-10-21
回 7楼(ppdayz) 的帖子
    对啊!我今天自己琢磨琢磨,想想应该用ftp协议才行得通。我现在就是想每个用户登录,我都再数据库里把他的ip记下来,到时双击那个用户我就可以取得他得ip。但是郁闷了,又有问题了!!(就是下面那个)
   大侠,能不能给个qq我,以后有什么可以问你,不用挂论坛上等半天,我都没人问,自己摸索感觉效率好低啊!大侠,还有个问题,http://www.qtcn.org/bbs/read-htm-tid-46143-displayMode-1.html。求带!

只看该作者 9楼 发表于: 2011-10-22
回 8楼(键盘爱鼠标) 的帖子
上面的问题自己琢磨琢磨搞定了arg(address.tostring());就可以了!哈哈!谢谢大侠!哈哈!
快速回复
限100 字节
 
上一个 下一个