下载功能

0 views
Skip to first unread message

amoblin

unread,
Apr 21, 2009, 6:08:39 AM4/21/09
to gmbox-dev
部分实现了MainWindow.py的下载功能:
在onSearchListRightClicked函数中,改selected=view.get_selection
().get_selected()为
selected,iter=view.get_selection().get_selected()
然后,index=selected.get_value(iter, 0)
menuitem.connect('activate', self.l.downone_, int(index))
self.l 是改downList中的 局部变量 l 为 类成员变量后使用的。
而downone_函数是在gmbox.py中复制downone函数后做些微修改得到的,唯一的区别是参数多了一个widget:
def downone_(self, widget, i=0):
经过以上修改后可以下载了。但是却是滞后下载:就是第一次点击,不下载,第二次点下载时下第一次那个。。。
不知道为什么?之前一直有小错误提示 TypeError: iter must be a GtkTreeIter
可能是这个错误的缘故吧?
还有我把local_uri改为local_uri='top100/'+song['title']+'-'+song['artist']
+'.mp3',否则mp3文件和python文件混一起看起来不舒服,不过这是小问题啦!
现在还不能svn commit,只能在这里先描述一下了。。。
骨头什么时候批准我加入呢?

lerosua

unread,
Apr 21, 2009, 7:54:17 AM4/21/09
to gmbo...@googlegroups.com
那要等骨头加你了。
你现在的下载功能,有下载状态吗?
当时的设想是右键下载后,把文件加到第三页(下载管理那页)
然后在那里显示下载的状态。和一般下载器差不多。
不过这是可以讨论的。大家有啥意见呢

darling8611

unread,
Apr 21, 2009, 8:17:57 AM4/21/09
to gmbo...@googlegroups.com

> On Tue, Apr 21, 2009 at 03:08:39AM -0700, amoblin wrote:
>
>> 部分实现了MainWindow.py的下载功能:
>> 在onSearchListRightClicked函数中,改selected=view.get_selection
>> ().get_selected()为
>> selected,iter=view.get_selection().get_selected()
>> 然后,index=selected.get_value(iter, 0)
>> menuitem.connect('activate', self.l.downone_, int(index))
>> self.l 是改downList中的 局部变量 l 为 类成员变量后使用的。
>> 而downone_函数是在gmbox.py中复制downone函数后做些微修改得到的,
gmbox.py中的对象复制到Main,这样的做法是不对的,界面是界面,实现是实现,
两者应该分开来看,最好的办法是直接调用。

>> 唯一的区别是参数多了一个widget:
>> def downone_(self, widget, i=0):
>> 经过以上修改后可以下载了。但是却是滞后下载:就是第一次点击,不下载,第二次点下载时下第一次那个。。。
>> 不知道为什么?之前一直有小错误提示 TypeError: iter must be a GtkTreeIter
>> 可能是这个错误的缘故吧?
>>
>>
>>
>>

错误的原因在于,触发signal的先后顺序为:
1.点击
2,弹出popup
3,set_cursor到点击位置

所以iter会一直保持上一次的状态,除非点击两次

我现在着手实现下载功能好吧~嘿嘿^_^

崔贵林

unread,
Apr 21, 2009, 9:28:29 AM4/21/09
to gmbo...@googlegroups.com
lerosua:
我只是用这个方法实现了基本的下载,还没有线程支持。
darling8611:
复制的downone_函数还是在gmbox里的,不是复制到MainWindow的。
menuitem.connect('activate', self.l.downone_, int(index))这个还要改一下,int(index)+1才对。

关于试听,大概实现思路应该怎样呢?下载到临时文件还是怎么?
2009/4/21 lerosua <ler...@gmail.com>



--
崔贵林 csip
E-mail:  amo...@gmail.com
MSN :  amo...@msn.cn
  Cell  :  13260179436

darling8611

unread,
Apr 21, 2009, 11:20:23 AM4/21/09
to gmbo...@googlegroups.com
现在偶写好了下载,因为GUI代码也只有200多行,所以diff一下看变动吧。

我想提几点意见供大家参考一下:

1.既然是一个project,那就应该有统一的目标,一个完整的TODO列表很重要,这样
不会盲目。有时我拿着都不知道从哪里入手比较好^_^
希望有好人做下这个工作~

2.编码规范问题,大家的编码方式各不相同,代码少倒是没问题,多了可能就比较
麻烦了,偶使用GTK的编码方式,单词加下划线,或者骨头喜欢单词加头字母大写,
而其他人可能还有其他的写法,所以我们是不是该统一一下呢?

3.封装问题,这应该算是一个原则吧,函数成员对函数开放就不对类开放,就是尽
量少用self,这样大家改起代码来也比较轻松~

好了,偶的发言完毕~over

崔贵林

unread,
Apr 21, 2009, 11:54:45 AM4/21/09
to gmbo...@googlegroups.com
接下来应该是试听吧?这样至少有得用了,现在我用prism-google-music,嫌麻烦。
试听如何实现呢?
还有通过dbus检测网络状态,因为现在断网时运行就出错。
再加上libnotify实现通知歌曲,这样是不是基本可以用了呢?
先说手如何试听吧?我想把这个实现一下。。。
说一个题外话:今天我研究了一会儿python qq,太复杂了,不知大家谁有兴趣也参与看看呢?
python qq也放在google code上,但貌似好久没人更新了。现在是一点都不能用。

2009/4/21 darling8611 <darli...@gmail.com>

lerosua

unread,
Apr 22, 2009, 8:45:08 AM4/22/09
to gmbox-dev
1.目标的东西,或者你做出一个来也行啊。我编码就比较随意,不会做这个。
2.编码规范是个问题,gtk方式我也能接受。
3.涉及设计问题,只能尽量了。目前来说结构还不明显,随时有推倒重来的时机。
Reply all
Reply to author
Forward
0 new messages