Jun 7

正在实现歌词滚动,初步的想法是现有一个layout,然后在上面放上一个vbox,这样vbox就可以自由移动了,然后根据歌词行数在vbox上放一些label……有几行放几个

在歌曲播放的时候根据当前歌词所在的行的位置调整vbox的位置……大概的思路就是这样

实现起来不是很困难,不过却被另一个问题给难住了……

我想让当前歌词行实现不同的颜色,这不难,难的是怎么把变过色的label恢复回以前的颜色,这个直接悲剧了,不能清一色都恢复成黑色,因为如果gtk使用的皮肤也是黑色的话就悲剧到什么也看不出来了……

目前还没有想到好的解决办法,很操蛋,主要是到现在也没看到可以获取当前文字颜色的方法………………………………我靠

只能是把背景改成黑色的了,千千静听不也是这样写的吗……

 

Jan 17

今天写了近两个小时的代码,是关于鼠标滑轮滚动调整歌词的功能,进展非常之不顺利……太不顺利了……

一开始先goooooogle了一番鼠标event,找到了一个叫scroll-event的,ms相当好用,具体用法可以参考这个:http://zuosa.net/9nha.u

最初设想把event挂到window上就可以了,但是写出代码后发现并不成功,当鼠标是在label上滚动滑轮时,没有任何反应……

也不知道是为什么,就开始盲目处理,处理了好半天,都是原地踏步了……没有任何进展,后来想起了,这是因为label并不能发event的缘故……具体情况可参见pygtk教程,必须要配合eventbox使用

费了老半天去修改界面文件,把所有的label都换成eventbox,然后再在eventbox上加label,够麻烦的

完成了这步,又有了新问题——接到事件后该如何响应……迷茫了,最后马马虎虎写了一段不上去,算是能用了

本来是想通过调歌词来调时间的,可是这样不能实现,因为歌词是精确到毫秒的,可是exaile的seek功能只能精确到秒……无奈

所有只能是通过调时间来调歌词,可这样效果就大减了,不管怎么样,总算又写了一些代码……