Seite 1 von 1

fenster verschieben

Verfasst: Dienstag 10. Juli 2007, 23:59
von nkoehring
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 :)

Verfasst: Mittwoch 11. Juli 2007, 00:31
von gerold
Hallo nkoehring!

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

mfg
Gerold
:-)