Prob mit entry übergabe

Plattformunabhängige GUIs mit wxWidgets.
Antworten
The Spirit
User
Beiträge: 274
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Mittwoch 24. Oktober 2007, 22:07

HI.
Fange gerade mit wxpython an und hab ein prob.
Ich schreibe nen pfad in das entry feld und möchte wenn ich start drücke, das er mir den pfad printet.

Code: Alles auswählen

class MyFrame(wx.Frame):
	def __init__(self, parent, id, title):
		wx.Frame.__init__(self, parent, id, title, size=(250, 270), style = wx.DEFAULT_FRAME_STYLE)


		wx.StaticText(self, -1, 'Programmpfad', (10, 20))

		self.folder = wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))

		start = wx.Button(self, 1, 'start', (10, 160))

		self.Bind(wx.EVT_BUTTON, self.befehl1, id=1)

	def befehl1():
		cmd = self.folder.GetValue()
		print cmd
		#subprocess.Popen(cmd)


class MyApp(wx.App):
	def OnInit(self):
		frame = MyFrame(None, -1, 'test')
		frame.Show(True)
		return True

app = MyApp(0)
app.MainLoop()
er sagt jedoch typerror.. befehl1 würde kein argument erwarten, aber ich würde zwei übergeben. welche wären das denn, und wo mache ich meinen fehler?
thx
BlackJack

Mittwoch 24. Oktober 2007, 22:28

Sehr offensichtlich wird das Objekt übergeben weil es sich um eine Methode handelt und beim zweiten Argument würde ich mal auf ein Event-Objekt tippen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 24. Oktober 2007, 22:30

The Spirit hat geschrieben:befehl1 würde kein argument erwarten, aber ich würde zwei übergeben. welche wären das denn,
Hallo The Spirit!

Jeder Event-Handler bekommt als Argument das Event übergeben. Und da es sich zusätzlich um eine Methode handelt, wird als erstes Argument die Klasseninstanz (self) übergeben.

Code: Alles auswählen

def my_eventhandler(self, event = None):
    ...
``event = None`` gebe ich immer dann an, wenn ich das Event im Eventhandler nicht brauche. So kann ich die Methode auch ganz normal, ohne Event, aufrufen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
The Spirit
User
Beiträge: 274
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Donnerstag 25. Oktober 2007, 08:04

vielen dank euch beiden.
klappt jetzt einwandfrei.

hatte mir kurzzeitig schon überlegt, wieder mit tk zu arbeiten, da ich da schon wusste wie es geht. aber man hat erstens viel mehr möglichkeiten mit wx und es sieht einfach schöner aus (native halt).
da lohnt sich die einarbeitungsphase aus meiner sicht schon
Antworten