2011-12-22 3 views
1

확실하지가 발생 생성,하지만 난wxformbuilder 파이썬은 배경이 관련된 경우 코드가 나가서 설명하자면 NameError

내가 wxGlade가에서 이동하고있어 사태에 포함됩니다, 그래서 wxGlade가에서 XRC를 생성 wxformbuilder

수입

나는 제대로 그리드를 보여줍니다 서브 클래스의 타당성도 (mygrid.MyGrid) 올바른 wxformbuilder에, 나는 몇 가지 기능을 추가하는 서브 클래스 그리드가

하지만 물론 생성 된 코드는로에는 myGrid를 가져올 수 없습니다 그래야 실행하면 던져집니다.

NameError: global name 'mygrid' is not defined 

이것은 잘못된 것입니까? 어떤 해결 방법?

답변

1

확인,

기본적으로

내가 수동으로 모듈 글로벌 dictionay에 대한 참조 추가 작동하는 것 같다 못생긴 해결 방법을 발견 : 예에서
코드가 파일 gui.py에서 생성됩니다 내 클래스는 내부에 파일이 귀하의 해결 방법은 몇 개월 동안 나를 도와

import mygrid 
import gui 
import sys 
setattr(sys.modules["gui"], "mygrid", mygrid) 
2

mygrid.py.

마침내 ++에만을 C에 대한 을 내용의 header 필드 도움말을 무시하고, 내 서브 클래스가이 모듈 이름에 표시된 오늘날까지. 이제, 생성 된 클래스는 서브 클래스 정의를 올바르게 임포트합니다.

header 필드는 wxFormBuilder GUI의 subclass 필드 바로 아래에 있습니다. wxFormBuilder 프로젝트를 수동으로 편집하려면 <property name="subclass">mygrid; </property><property name="subclass">mygrid; mygrid</property>으로 바꿉니다. 다시 생성 한 후 gui.py에 from mygrid import mygrid 행이 생깁니다.

관련 문제