2014-10-20 60 views
1

我想在點擊按鈕後繪製一些線條。但是,當我最小化窗口,或在ScrolledWindow中滾動窗口時,所有繪圖都將丟失。有什麼辦法讓他們保持?Python - wxPython:使用wx.ClientDC繪製線條,這將在最小化窗口後消失

下面是代碼:

import wx 

class Frame(wx.Frame): 

    def __init__(self): 
     wx.Frame.__init__(self, None, -1, size=(640, 480)) 
     self.panel = wx.Panel(self, wx.ID_ANY) 

     button = wx.Button(self.panel, id=wx.ID_ANY, label=u'Start Calculation', size=(160, 22)) 
     self.Bind(wx.EVT_BUTTON, self.OnButtonCalcuating, button) 


    def OnButtonCalcuating(self, event): 
     self.dc = wx.ClientDC(self.panel) 
     self.dc.DrawLine(50, 60, 190, 60) 


if __name__ == '__main__': 
    app = wx.PySimpleApp() 
    frame = Frame() 
    frame.Show() 
    app.MainLoop() 

回答

2

如果你要畫到窗口中,你必須爲EVT_PAINT事件的處理程序。你所做的是,你畫線,但就是這樣。當窗口被重新繪製,並且對你的線條一無所知。

看看這個: http://wiki.wxpython.org/VerySimpleDrawing