2

如何在类和函数之间传递 GTK 对象?

我有一个 GUI 类,即 GTKWindow,我有一个播放器类,即带有播放按钮和滑块的 vbox,以及 GST 管道播放箱。

(伪代码)

class Player(object):
    def __init__(self):
        self.play_button = gtk.Button()
        self.slider = gtk.HScale()

        self.hbox = gtk.HBox()
        self.hbox.pack_start(self.play_button, False)
        self.hbox.pack_start(self.slider, True, True)
        def getbox():
            return self.hbox

class GUI:
    def __init__(self, dname = None):
        player = Player()
        playerbox = playerbox.getbox
        vbox = gtk.VBox()
        vbox.pack_start (playerbox, False, False, 1)

TypeError: Gtk.Box.pack_start() argument 1 must be gtk.Widget, not instancemethod

也许这不是正确的做法,而且所有盒子每次都必须住在同一个班级..?

4

1 回答 1

2

您忽略了实际调用getbox方法。而不是playerbox = player.getbox,您需要编写playerbox = player.getbox(). 编写前者会提取函数对象本身,这就是为什么pack_start抱怨它正在接收一个instancemethodas 参数 1。

于 2013-08-10T09:50:30.370 回答