2016-11-28 1 views
0

저는 wx python에서 도구 모음을 만들려고합니다. 내 메인 파일에서 만들 수 있지만 프로그래밍을 더 명확하게 만들기 위해 많은 .py 파일을 사용하고 있습니다. 내 다른 파일 (microanalysis_menubar_view)에서wxpython 다른 클래스를 호출하여 도구 모음을 만듭니다

from microanalysis_menubar_view import TBar as toolbar_view 

class Main(wx.Frame): 

    def __init__(self, parent, id): 

     wx.Frame.__init__(self, parent, id) 
     self.panel = wx.Panel(self, wx.ID_ANY) 
     self.SetTitle('Microanalysis') 

     # add menubar 
     self.menubar = menubar_view() 
     self.SetMenuBar(self.menubar) 

     #add toolbar 
     self.toolbar = toolbar_view() 

나는이있다 :

class TBar(wx.ToolBar): 

    def __init__(self): 

     wx.ToolBar.__init__(self) 

     toolbar = self.CreateToolBar() 
     qtool = toolbar.AddLabelTool(wx.ID_ANY, 'Quit', wx.Bitmap('exit.png')) 
     toolbar.Realize() 

을 그리고 난이 오류를 얻을 :

형식 오류를 내 주요 파일에서

는이 코드를 가지고 : 필수 인수 'parent'(pos 1)을 찾을 수 없음

나는 또한 추가하는 데 문제가있었습니다. 이런 식으로,하지만 그걸 해결했습니다. 이것은 더 어렵습니다.

self.toolbar.Realize(self.toolbar) 

중 하나가 작동하지 않습니다 :

나는 내 주요 파일에 'toolbar.Realize()을 전환했습니다. Tx 사전에

답변

0

wx.ToolBar 객체는 첫 번째 인수로 parent가 필요합니다. 당신은 그것을 제공하지 않습니다.

툴바를 만들려면 상위 개체를 추가해야합니다. 그래서 전화는 다음과 같이 시작할 것 도구 모음을 초기화 함수를 만드는 방법 :

def __init__(self, parent): 

    wx.ToolBar.__init__(self, parent) 

자체가 당신이

#add toolbar 
self.toolbar = toolbar_view(self) 

를 호출하는 데 필요한 도구 모음을 만들려면이 방법을 당신에게 손을 자신을 통해 부모 인수와 같은 이것을 wx.ToolBar 객체에 부모로 제공하십시오.

희망이 도움이됩니다. 마이클

+0

도움 주셔서 감사합니다. 나는 그것이 도움이되었다고 생각하지만, 나는 다른 오류가 있기 때문에 그것을 테스트 할 수 없다 : AttributeError : 'TBar'객체에는 'CreateToolBar'속성이 없다. 자체 정의 된 클래스에서 'createToolBar'사용할 수 없다고 생각합니까? – VeVi

+1

CreateToolBar는 표준 도구 모음을 만드는 프레임 방법입니다. SetToolBar 메서드 프레임을 사용하여 사용자 정의 도구 모음 인스턴스를 프레임에 추가합니다. – Yoriz

관련 문제