我已經寫了這個小應用程序,吸引用戶選擇的兩點之間的線,它的工作原理,但我怎麼養我繪製線條從每當窗口最小化後消失或被另一個打開的窗口覆蓋?wxPython的 - 與設備上下文繪製線條消失在焦點更改
class SimpleDraw(wx.Frame):
def __init__(self, parent, id, title, size=(640, 480)):
self.points = []
wx.Frame.__init__(self, parent, id, title, size)
self.Bind(wx.EVT_LEFT_DOWN, self.DrawDot)
self.SetBackgroundColour("WHITE")
self.Centre()
self.Show(True)
def DrawDot(self, event):
self.points.append(event.GetPosition())
if len(self.points) == 2:
dc = wx.ClientDC(self)
dc.SetPen(wx.Pen("#000000", 10, wx.SOLID))
x1, y1 = self.points[0]
x2, y2 = self.points[1]
dc.DrawLine(x1, y1, x2, y2)
# reset the list to empty
self.points = []
if __name__ == "__main__":
app = wx.App()
SimpleDraw(None, -1, "Title Here!")
app.MainLoop()
你是什麼意思「使窗口無效」? – cornjuliox 2010-01-20 08:19:32
在窗口化的GUI中,窗口系統會跟蹤窗口的哪些部分被正確繪製,哪些不是。當底層模型發生變化時,您不會直接在窗口中繪製。相反,您告訴窗口系統您不再正確繪製。這被稱爲「使窗口無效」。然後它會發送給您繪畫事件以重新繪製它。 – 2010-01-20 11:59:56