데이터를 제공하기 위해 wx.grid.PyGridTableBase 파생 클래스로 wx.grid.Grid를 만들었습니다. 나는 또한 테이블에서 사용되는 편집기를 제어하려고합니다. 그 목적을 위해 다음 방법을 정의했습니다.편집자와 wxPython 세분화 오류
def GetAttr(self, row, col, kind):
attr = wx.grid.GridCellAttr()
if col == 0:
attr.SetEditor(wx.grid.GridCellChoiceEditor())
return attr
그러나 그리드에서 편집기를 만들려고 할 때마다 세그먼트 화 오류가 발생합니다. 나는 미리 편집기를 작성하고 매개 변수로 전달하려고했지만 오류 접수 :
TypeError: in method 'GridCellAttr_SetEditor', expected argument 2 of type
'wxGridCellEditor *'
내가 두 번째 오류가 소유권을 이륙 한 후 내 편집기를 파괴 GridCellAttr에 의해 발생 의심을.
또한 wx.grid.Grid에서 SetDefaultEditor 메서드를 사용하여 시도했지만 제대로 작동하지만 자연스럽게 열 특정 편집 전략을 가질 수 없습니다. 충돌 프로그램의
참조 전체 예 :
import wx
import wx.grid as gridlib
을 변경 : http://pastebin.com/SEbhvaKf
: 다른 미래에 같은 문제를 치는 사람을 위해
, 내 작업 코드를 참조하십시오. 기타 가져 오기 스타일을 변경하면 수정해야 할 작업이 무엇인지 알 수 없습니다. SetColAttr를 사용 잘 작동하고, 감사를 할 수있는 더 좋은 방법입니다. 하지만 내가 세그멘테이션 오류를 얻는 이유를 알고 싶습니다 ... –
예, 정확하게는 가져 오기 스타일을 변경하는 것입니다. 콘솔 출력에서 볼 수 있듯이,'wx.grid' 대신에'wx'를 가져 오면 wx.grid의 오브젝트가 작동하지 않습니다. 가져온 경우 개체가'wx.grid'로 나열되기 때문에 왜 그런지 모르겠습니다. 어쨌든, 이것은 항상 귀하의 경우에만이 방법입니다. 에디터를 사용할 때만 세그먼테이션 오류가 발생했습니다. wx.grid로 제대로 초기화되지 않았기 때문에 유형이 잘못되었거나 유형이 없기 때문입니다. – laurent
가져 오기 스타일을 변경해도 문제가 해결되지 않습니다. (예, 확실하게 시도했습니다) –