zweistufiges eventhandling

Fragen zu Tkinter.
linde_user
User
Beiträge: 25
Registriert: Mittwoch 20. April 2005, 11:47

zweistufiges eventhandling

Beitragvon linde_user » Mittwoch 18. Mai 2005, 14:14

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!
BlackJack

Beitragvon BlackJack » Mittwoch 18. Mai 2005, 22:26

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.
linde_user
User
Beiträge: 25
Registriert: Mittwoch 20. April 2005, 11:47

Beitragvon linde_user » Donnerstag 19. Mai 2005, 10:29

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. :(
BlackJack

Beitragvon BlackJack » Donnerstag 19. Mai 2005, 21:46

Wieso Tkinter? Der Fehler tritt bei ``py_send('#')`` auf! Darum dachte ich auch es wäre wichtig eine Verbindung aufzubauen bevor man etwas sendet!?

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder