이 예제를 내 특정 문제에 적용 할 수는 없지만 실제로이 작업에 대해 수백 가지 예제가 있다는 것을 알고 있습니다. 아래 코드에서 볼 수 있듯이 비트 맵 "self.image"에 다각형을 그리려는 중입니다. 이 코드는 MS Windows에서 절대적으로 작동합니다. 리눅스에서는이 코드가 폴리곤을 그리지 않습니다.wxpython (크로스 플랫폼)을 사용하여 비트 맵에서 그리기
나는이 How to draw text in a bitmap using wxpython? 에 따라 MemoryDC와 다른 "dcs"로 놀려고했지만 결과는 동일합니다.
내 질문은 : 왜 내 코드가 Linux에서 실패합니까? 이것이 MS Windows에서 작동하는 이유는 무엇입니까? (조금 벗어난 주제) 왜 사람들은 EVP_PAINT에 바인딩 된 OnPaint 메소드의 PaintDC를 독점적으로 그리는가?
클래스 속성 :
self.dc = wx.ClientDC(self.image)
self.dc.SetPen(wx.Pen(colour='red', width=4, style=wx.SOLID))
self.polygon = list()
I 그리기 시작할 때이 메소드가 호출되고 : 나는 고정
def draw_polygon(self, event):
self.polygon.append(event.GetPositionTuple())
if len(self.polygon) > 1:
self.dc.DrawLines(points=self.polygon)