예상대로되지 동작을 수행하지만,이 panel
이 BoxSizer
에 배치 할 수없는 것 같다. 시도 했음wxWidgets에 : 팔렛에서 BoxSizer 내부 패널 내가 <code>OpenCV</code>에서 이미지를 그릴 <code>Panel</code>를 사용
vbox = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(vbox)
vbox.Add(wx.Button(panel, label='aaa', size=(70, 30)))
vbox.Add(wx.Button(panel, label='aaa', size=(70, 30)))
vbox.Add(wx.Button(panel, label='aaa', size=(70, 30)))
vbox.Add(OpenCVCanvas(self), border=10)
버튼 레이아웃은 올바르지 만 패널은 항상 왼쪽 상단 구석에 배치됩니다. 내가 뭘 잘못 했니? 패널
코드 :
class OpenCVCanvas(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.Bind(wx.EVT_PAINT, self.onPaint)
self.bmp = None
def updateImage(self, frame):
if self.bmp is None:
height, width = frame.shape[:2]
self.SetSize((width, height))
self.bmp = wx.BitmapFromBuffer(width, height, frame)
self.bmp.CopyFromBuffer(frame)
self.Refresh()
def onPaint(self, evt):
if self.bmp is not None:
dc = wx.BufferedPaintDC(self)
dc.DrawBitmap(self.bmp, 0, 0)
정말 질문을 더 잘 표현해야합니다. 당신은 패널에 대해서 이야기하고 있는데,'panel' 변수를 가지면서'OpenCVCanvas' 선언을합니다. – catalin
복서에 패널을 추가하는 동안, C++에서 sizer에 맞는 매개 변수를 제공하려고합니다. wxEXPAND처럼 표현할 것입니다. – StraightCirle
@ catalin 'OpenCVCanvas'를'MyPanel'과 같은 이름으로 바꾸는 것이 더 낫습니다. –