Seite 1 von 1

zweistufiges eventhandling

Verfasst: Mittwoch 18. Mai 2005, 14:14
von linde_user
Hallo an alle Hilfsbereiten Programmierexperten,

ich habe folgendes Problem: Um mit Python ein Auswertefile eines FEM- Programmes zu steuern brauche ich eine zweistufige Arbeitsweise. Erstens will ich einen Vorgang aufrufen, Dann innerhalb des Programmes Werte eingeben, dann das Pythonscript weiter ausführen. Dafür habe ich ein Beispiel im Tkinter- Handbuch gefunden, mit welchem ich arbeiten will. Daß wird, so wie ich es verstanden habe über eine .bind funktion realisiert, das bei einem Ereignis eine Funktion def callback... ausgeführt wird. In diese Funktion wollte ich ganz einfach meine Kommandos für die zweite Stufe "hineinmogeln". Ich zeige mal den bisherigen Quelltext:

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: latin-1 -*-

from py_post import *
from py_mentat import *
from Tkinter import *

root=Tk()

def main(fname):

      py_send("*set_pathplot_path")



      return

def callback(event):

      print "a"
      py_send("#")
      py_send("*pathplot_add")

frame=Frame(root,width=100,height=100)
frame.bind("<Button-1>",callback)
frame.pack()

root.mainloop()
  
      
	

if __name__=='__main__':
        py_connect("",40007)
	main('/home/tfr002/test/schraegwand2_job2.t16')
also in der Funktion main soll der erste Teil erfolgen, dann will ich ein paar Einstellungen vornehmen, und mit einem Mausklick in den Frame soll der zweite Teil fortsetzen.

Leider schickt er mir folgende Fehlermeldung:
Error on send...
Exception in Tkinter callback
Traceback (innermost last):
File ".../ /Tkinter.py, line 764, in __call__
return Apply(self.func,args)
File ".../nodes2.py", line 21, in callback py_send("#")
SystemError: NULL result without error in call_object
kann mir jemand einen Tip geben oder hat jemand eine andere Möglichkeit? Den Frame erzeugt er problemlos, die Fehlermeldung kommt beim Anklicken des Feldes.
Ich danke für jede Hilfe!

Verfasst: Mittwoch 18. Mai 2005, 22:26
von BlackJack
Ich nehme mal an das `py_connect()` wäre wichtig -- es wird aber nicht ausgeführt. Der Aufruf von `root.mainloop()` kehrt nicht zurück, alles danach wird nicht ausgeführt.

Verfasst: Donnerstag 19. Mai 2005, 10:29
von linde_user
Das py_connect ist eigentlich nebensächlich. weiß jemand was die Fehlermeldung zu bedeuten hat? Ich hab aus der Tkinter.py nichts sinnvolles an der Stelle entnehmen können. :(

Verfasst: Donnerstag 19. Mai 2005, 21:46
von BlackJack
Wieso Tkinter? Der Fehler tritt bei ``py_send('#')`` auf! Darum dachte ich auch es wäre wichtig eine Verbindung aufzubauen bevor man etwas sendet!?