fenster verschieben

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Hallo... ich hab mir hier ein kleines Tool gebastelt. Da das Fenster keinen System-Rahmen haben wird, habe ich eine Methode moveWindow implementiert und das Event EVT_LEFT_DOWN daran gehaengt.

Funktionieren tut es wunderbar. Auch das der normale Klick (also EVT_MOUSE_UP, an dem auch etwas haengt) durch einen Boolean verhindert wird.
Meine Frage ist eigentlich nur, ob das okay so ist, oder vielleicht zu Ressourcen-Intensiv? Gibt es eine elegantere Methode als eine while-Schleife?

Aber nun erstmal der Code:

Code: Alles auswählen

    def moveWindow(self, evt):
        mouse = wx.GetMouseState()
        current_position = self.GetScreenPosition()
        delta_x = mouse.x - current_position.x
        delta_y = mouse.y - current_position.y

        while mouse.leftDown:
            pos = wx.Point(mouse.x-delta_x, mouse.y-delta_y)
            self.SetPosition(pos)
            mouse = wx.GetMouseState()

        if not self.GetScreenPosition() == current_position: self.moved = True
Danke :)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo nkoehring!

Die Idee kommt vom "ShapedWindow" aus der wxPython-Demo: http://www.python-forum.de/post-64768.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten