2013-02-25 29 views
0

我正在用pygtk写一个“飞行文本”。 小测试代码看起来是这样的:pygtk子标签调整大小固定容器移动时

class MainWindow(gobject.GObject): 
    def __init__(self,sender): 
     self.__gobject_init__() 
     sender.connect('move_label', self.move_label) 
     self.box = HBox() 
     self.w = gtk.Window() 
     self._mainbox = gtk.VBox() 
     self._flybox = gtk.Fixed() 
     self._label = gtk.Label("testing") 
     self._x = 10 
     self._flybox.put(self._label,self._x,0); 
     self._mainbox.pack_start(self.box) 
     self._mainbox.pack_start(self._flybox) 
     self.w.add(self._mainbox) 

    def move_label(self,sender): 
     self._x += 10 
     self._flybox.move(self._label,self._x,0) 

    def main(self, fname): 
     self.w.show_all() 
     self.w.connect("destroy", gtk.main_quit) 
     gtk.main() 


class Sender(gobject.GObject): 
    def __init__(self): 
     self.__gobject_init__() 

    def trigger_move_label(self): 
     gobject.timeout_add(2*1000, self.trigger_move_label) 
     self.emit('move_label'); 

gobject.signal_new('move_label',Sender,gobject.SIGNAL_RUN_FIRST,gobject.TYPE_NONE,()) 

sender = Sender() 
gobject.timeout_add(2*1000, sender.trigger_move_label) 
player = VideoPlayer(sender) 
player.main(sys.argv[1]) 

本示例在含有标签“测试”底部产生具有固定框的窗口。 此外,它创建一个计时器,每2秒触发一次将(self._flybox.move(........))标签移动到容器末尾的方法。 问题在于标签移动到窗口的末尾之后。它不断移动并调整固定容器和整个窗口的大小。 但我希望这个标签在移出固定容器时被歪斜

回答

0

我已经找到了它。 我需要使用gtk.Layout()代替gtk.Fixed()来移出容器后进行标签裁剪