Seite 1 von 2
Verfasst: Dienstag 30. Dezember 2008, 21:34
von INFACT
Komisch
Diemal habe ich genau das gleich gemacht und es hat funktioniert.
Naja danke für den tipp!
Verfasst: Dienstag 30. Dezember 2008, 21:44
von abgdf
Komisch
Diemal habe ich genau das gleich gemacht und es hat funktioniert.
Menno, das sollte Dich doch jetzt nicht wundern: Ich sagte doch, das Skript stimmt im Prinzip, nur Python muß genug Zeit für die Initialisierung haben. Wahrscheinlich hatte es die jetzt, aus anderen, systeminternen Gründen.
Gruß
Verfasst: Dienstag 30. Dezember 2008, 21:51
von INFACT
Das habe ich schon verstanden ich verstehe bloß die Gründe nicht
Verfasst: Dienstag 30. Dezember 2008, 22:19
von abgdf
Na, stell' Dir vor, Du hättest eine Fensteranwendung mit Knöpfen. Noch bevor das Fenster gezeichnet ist, versuchst Du, den Text eines Knopfes zu ändern oder einen Klick zu simulieren. Dann würde das Skript abbrechen mit einer Meldung:
Heh, ich muß erst meine Anwendung initialisieren ...
So ähnlich dürfte das hier auch sein (wx ist ja eigentlich ein GUI-Toolkit).
Gruß
Buttons drücken
Verfasst: Mittwoch 31. Dezember 2008, 20:31
von INFACT
und wie kann man denn Button drücke abfragen?
Verfasst: Donnerstag 1. Januar 2009, 03:01
von abgdf
und wie kann man denn Button drücke abfragen?
Na, z.B. so: Man wartet, bis das Fenster aufgeht:
Code: Alles auswählen
#!/usr/bin/env python
import wx
class MainWin:
def __init__(self):
self.app = wx.PySimpleApp()
self.frame = wx.Frame(None, -1, "Some Window", size = (300, 100))
self.panel = wx.Panel(self.frame)
self.button = wx.Button(self.frame, label = "Click me", pos = (100, 30), size = (100, 50))
self.frame.Bind(wx.EVT_BUTTON, self.clicked, self.button)
self.frame.Bind(wx.EVT_CLOSE, self.end)
self.frame.Show()
self.app.MainLoop()
def clicked(self, event):
print "Clicked."
def end(self, event):
print "Bye."
self.frame.Destroy()
MainWin()
(Bin mehr 'n Tkinter-Mann ...)
Das Problem ist, daß Du bei Deiner Joystick-Abfrage eben kein Fenster haben willst.
Das führt dann zu dem oben beschriebenen Problem vorzeitiger Abfrage ("questio praecox" sozusagen

) ...
Gruß
Verfasst: Donnerstag 1. Januar 2009, 19:50
von INFACT
Ich gleube das ist nicht das was ich meine.
Das erzeugt ein Fenster und wenn man da den Button <mit der maus> drückt schreibt das etwas.
Ich wollte aber eigentlich, dass etwas passiert, wenn man einen Button am joystick drückt.
Trotzdem Danke und Sorry, wenn ich mich etwas kompliziert ausgedrückt habe...

Verfasst: Donnerstag 1. Januar 2009, 21:43
von abgdf
Verfasst: Donnerstag 1. Januar 2009, 23:29
von INFACT
es funktioniert aber nicht.
Demnach müsste es ja heißen:
stick.ButtonIsDown()
oder
stick.GetButtonState()
Bei beiden kommt aber, dass es den Befehl nicht gibt
oder wieder das problem mit der application...
[/code]
Verfasst: Freitag 2. Januar 2009, 11:02
von abgdf
Doch,
Code: Alles auswählen
#!/usr/bin/env python
import wx
import time
app = wx.PySimpleApp()
stick = wx.Joystick()
time.sleep(4)
print stick.GetPosition()
print stick.GetButtonState()
geht. Ich erwarte eigentlich auch, daß Du das mit meinem bis auf die letzte Zeile identischen Skript oben so testest.
Bevor Du erneut hier anfragst.
Gruß
Verfasst: Sonntag 4. Januar 2009, 19:48
von INFACT
Ok, Danke euch allen!
Es funtzt