event außerhalb des Frames

Plattformunabhängige GUIs mit wxWidgets.
Antworten
PEID

Hallo,

Wie schafft man es in wxPython ein event außerhalb des programmierten Fensters anzusteuern?

Mein Vorhaben besteht darin das ich eine bestimmte Position des Mauszeigers auf den Bildschirm bekommen möchte. Dabei hatte ich überlegt das ich Prg. schreibe was wx.TextCtrl sowie wx.Button enthält und sobald man nun auf den Button klickt soll man anschließend die gewünschte Position mit der Maus anfahren und zur Bestätigen einmal mit der linken Maustaste oder mittels einer definierte Taste, auf der Tastatur, drücken. Nach Ablauf sollte nun innerhalb TextCtrl die angeklickte Position stehen.

Code: Alles auswählen

#!/usr/bin/env python
  
import wx

class MyFrame(wx.Frame):
    def __init__(self, parent,id, title):
        
        wx.Frame.__init__(self, parent, id, title, size=(220,70))
        panel = wx.Panel(self)         
               
        label=wx.StaticText(panel, pos = (10, 10),label="angeklickte Position") 
        self.textbox = wx.TextCtrl(panel, pos = (10, 30), size = (85, -1)) 
        self.button = wx.Button(panel,label = "setzen", pos = (100, 27.5))        
        
        self.button.Bind(wx.EVT_BUTTON, self.mouse_pos)
        
    def mouse_pos(self, event):        
        # wx.EVT_LEFT_DOWN - außerhalb des Fensters ?            
        pos = event.GetPosition()
        self.textbox.Value = str(pos)
     
class MyApp(wx.App):   
    def OnInit(self):
        frame = MyFrame(None, -1, "Position")
        frame.Show(True)       
        self.SetTopWindow(frame)      
        return True

def main():
    app = MyApp()
    app.MainLoop()

if __name__ == "__main__":
    main()
Antworten