2014-06-23 2 views
1

Windows 컴퓨터에서 사각형이 나타나지 않습니다. 나는 맥 사용자이고 직사각형이 나타난 다른 누군가에게 이것을 주었다. 나는 어떤 오류도 발생하지 않기 때문에 이것을 알아낼 수 없다. 파이썬 2.7.7을 사용하고 있습니다.wxpython에 사각형이 표시되지 않습니다.

import socket 
import wx 

class WindowFrame(wx.Frame): 
    def __init__(self, parent, title): 
     wx.Frame.__init__(self, parent, title = title, size=(500, 400)) 
     self.panel=wx.Panel(self) 
     self.panel.SetBackgroundColour("#E6E6E6") 
     self.control = wx.TextCtrl(self.panel, style = wx.TE_MULTILINE, size =(410, 28), pos=(0,329)) 

     sendbutton=wx.Button(self.panel, label ="Send", pos =(414,325), size=(65,35)) 
     self.panel.Bind(wx.EVT_PAINT, self.OnPaint) 

     self.Centre() 
     self.Show() 


    def OnPaint(self, event): 
     dc = wx.PaintDC(self) 
     dc.SetPen(wx.Pen('#d4d4d4')) 
     dc.SetBrush(wx.Brush('#c56c00')) 
     dc.DrawRectangle(10, 15, 90, 60) 
     self.Show(True) 
if __name__=="__main__": 
    app = wx.App(False) 
    frame = WindowFrame(None, 'ChatClient') 
    app.MainLoop() 
+0

[wxPython을 패널에 사각형을 그립니다되지 않습니다]의 중복 가능성 (http://stackoverflow.com/questions/24370218/wxpython-wont-draw-rectangle-on- 패널) –

+0

@MikeDriscoll, 그건 나도 던졌다. 그러나 OP는 다른 질문을 여기에서 묻고있다 (그것이 실제로 다른 지위에 있어야하는지 명확히하지 않고있다). – wnnmaw

+1

그래, 당신은 옳을지도 모른다. 나는 물러 섰다. 어쨌든,이 답변은 양육 문제였습니다 ... OP는 패널 대신 프레임을 그리려하고 있습니다. –

답변

2

이 코드의 문제는 OP 패널에 그려 싶은,하지만 프레임에 페인트하기 위해 PaintDC 객체에게 진행된다는 점이다. OnPaint 메서드는 다음과 같이한다 :

def OnPaint(self, event): 
    dc = wx.PaintDC(self.panel) # <<< This was changed 
    dc.SetPen(wx.Pen('#d4d4d4')) 
    dc.SetBrush(wx.Brush('#c56c00')) 
    dc.DrawRectangle(10, 15, 90, 60) 
+0

감사합니다. 완벽하게 작동했습니다. – user3768136

관련 문제