2013-08-07 3 views
2

클래스와 함수간에 GTK 객체를 전달하는 방법은 무엇입니까?Python : 패킹을위한 pyGTK 객체 반환하기

나는 GTKWindow 인 GUI 클래스가 있으며, 플레이어 클래스, 재생 버튼과 슬라이더가있는 vbox, GST 파이프 라인 playbin이 있습니다.

(의사 코드) 같은 클래스마다 라이브

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 

어쩌면 그것을 할 수있는 올바른 방법이 아니다, 모든 상자 해야 ..?

+1

'getbox' 메소드의 목적은 무엇입니까? 왜 그냥'playerbox.hbox'를 사용하지 않는가? – Blender

+0

나는 지옥에 빠질 것이다. 귀하의 의견은 왜 답변이 아니므로 동의 할 수 있습니까? 고마워요 * very * much, Blender – yPhil

답변

2

귀하는 실제로 을 소홀히하여getbox 방법으로 전화하십시오. playerbox = player.getbox 대신 playerbox = player.getbox()을 입력해야합니다. 전자를 쓰면 함수 객체 자체가 추출되므로 pack_start은 인수 1에 instancemethod을 수신한다고 불평하는 이유입니다.

관련 문제