Welchen Device-Context verwenden? / veränderbares Rechteck
Verfasst: Freitag 22. Oktober 2010, 15:57
Hallo zusammen
Ich bin relativ neu in die GUI-Erstellung mit wxPython eingetreten, zum Glück gibts viele Beispiele.
Nun sind bei mir zwei Fragen aufgetreten:
1. Möchte ich 2D-Objekte zeichnen können, die aber beim verschieben/vergrössern des Fensters NICHT verschwinden. Wenn ich meine Zeichenfläche mit dem Client-DeviceContext erstelle, ist das bis zu einem gewissen Grad möglich. Muss aber ein Teil des Panels, auf welchem gezeichnet wird, neu erstellt werden (z.B. weil es nicht mehr ganz auf dem Bildschirm zu sehen ist), verschwindet mein Objekt. Gibt es irgendeine Möglichkeit, dieses löschen der Objekte zu verhindern?
2. Die Weiterführung wäre dann, ein Rechteck zeichnen zu können, welches nach dem Zeichnen in der Länge veränderbar und zudem als Ganzes verschiebbar ist. Ich kann das Rechteck zeichnen, aber wie ich es anstellen soll, das Rechteck nachher zu editieren/zu bewegen, weiss ich nicht. Habt jemand Anhaltspunkte? Könnte ich hier mit true/false etwas erreichen?
Mein Code fürs Zeichnen des Dreicks:
Danke für jeden Vorschlag!
Ich bin relativ neu in die GUI-Erstellung mit wxPython eingetreten, zum Glück gibts viele Beispiele.
Nun sind bei mir zwei Fragen aufgetreten:
1. Möchte ich 2D-Objekte zeichnen können, die aber beim verschieben/vergrössern des Fensters NICHT verschwinden. Wenn ich meine Zeichenfläche mit dem Client-DeviceContext erstelle, ist das bis zu einem gewissen Grad möglich. Muss aber ein Teil des Panels, auf welchem gezeichnet wird, neu erstellt werden (z.B. weil es nicht mehr ganz auf dem Bildschirm zu sehen ist), verschwindet mein Objekt. Gibt es irgendeine Möglichkeit, dieses löschen der Objekte zu verhindern?
2. Die Weiterführung wäre dann, ein Rechteck zeichnen zu können, welches nach dem Zeichnen in der Länge veränderbar und zudem als Ganzes verschiebbar ist. Ich kann das Rechteck zeichnen, aber wie ich es anstellen soll, das Rechteck nachher zu editieren/zu bewegen, weiss ich nicht. Habt jemand Anhaltspunkte? Könnte ich hier mit true/false etwas erreichen?
Mein Code fürs Zeichnen des Dreicks:
Code: Alles auswählen
def OnLeftDown(self, evt):
x = evt.GetX()
dc.Clear()
self.x1 = x
def OnLeftUp(self, evt):
x = evt.GetX()
self.x2 = x
dc.DrawRectangle(self.x1, 5, self.x2-self.x1, 5)
def OnPaint(self, evt):
global dc
dc = wx.ClientDC(evt.GetEventObject())