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])

本例创建了一个窗口,底部有一个Fixed框,其中包含一个标签"testing"。它还创建了一个计时器,每2秒触发一个将(self.flybox.move(……((标签移动到容器末尾的方法。问题是在标签被移动到窗口的末尾之后。它不断移动并调整"固定"容器和整个窗口的大小。但我希望这个标签在移出固定容器时被Crow

我已经想好了。我需要使用gtk。Layout((而不是gtk。Fixed((在移出容器后使标签裁剪

相关内容

  • 没有找到相关文章

最新更新