Seite 2 von 2
Verfasst: Montag 3. April 2006, 18:30
von Mr_Snede
Ein bischen verwirrend der Thread bis jetzt.
@oscar15
Lass uns vielleicht nochmal neu starten, ich befürchte nämlich, dass wir alle hier aneinander vorbeidenken.
Magst du dafür beschreiben, wie dein Programm benutzt werden soll?
Ganz ohne Programmierhintergrund, nur das was der Anwender mit dem Programm tut und wie das dann reagiert.
zB:
Benutzer klickt auf den Knopf "Datei öffnen"
Benutzer sucht eine Datei aus
Programm zeigt Text im Anzeigebereich an
Benutzer markiert Text mit der Maus
Benutzer klickt auf den Knopf "fette Schrift"
Programm zeigt die markierte Stelle im Text in fetter Schrift an
...
cu Sebastian
Verfasst: Montag 3. April 2006, 19:32
von oscar15
die schleife muss solange laufen, bis etwas erfüllt wurde! damit das aber erfüllt werden kann müssen die buttons, als input, gedrückt werden!
Bei JEDEM durchlauf soll das gemacht werden, also er soll warten bis der input da ist!!!
Verfasst: Montag 3. April 2006, 20:23
von silentbreaker
also ungefähr so was hier?
Code: Alles auswählen
import Tkinter as tk
erfuellt = False
def func():
#hier rein was erfuellt werden soll
global erfuellt
erfuellt = True
def schleife():
while not erfuellt:
print 'bla'
root = tk.Tk()
butt = tk.Button(root, text="Button", command=func)
butt.pack()
schleife()
root.mainloop()
Verfasst: Montag 3. April 2006, 20:35
von knekke
Dein Script funktioniert so nicht Silentbreaker, weil root.mainloop() erst nach der schleife gestartet wird, die ja aber solange läuft bis sie beendet wird... das geht ja nur wenn root.mainloop() läuft...
Wie wäre es hiermit?
Hier drückst du solange die Buttons bis ein bestimmtes Ereignis eintritt....
allerdings mal wieder ohne while-schleife (du hast ja auch noch nicht gesagt wofür du die brauchst

)
Code: Alles auswählen
#!/usr/bin/python
import Tkinter as tk
root = tk.Tk()
liste = []
def func(input):
global liste
liste.append(input)
if len(liste)>3:
print "Du hast folgende Tasten gedrueckt: ", liste
liste = []
butt1 = tk.Button(root,text="Button 1",command=lambda: func(1)).pack()
butt2 = tk.Button(root,text="Button 2",command=lambda: func(2)).pack()
butt3 = tk.Button(root,text="Button 3",command=lambda: func(3)).pack()
butt4 = tk.Button(root,text="Button 4",command=lambda: func(4)).pack()
root.mainloop()
Verfasst: Montag 3. April 2006, 20:51
von silentbreaker
knekke hat geschrieben:Dein Script funktioniert so nicht Silentbreaker, weil root.mainloop() erst nach der schleife gestartet wird, die ja aber solange läuft bis sie beendet wird... das geht ja nur wenn root.mainloop() läuft...
stimmt, hab es auf die schnelle in der IDLE getestet. Und da läuft es ja auch so. Nebenbei aber auch noch vergessen, dass man ja kein mainloop() in der IDLE benutzen soll...

Na ja, so ist das wenn man es eilig hat.
Verfasst: Dienstag 4. April 2006, 19:33
von oscar15
ich glaub wir reden immer noch vorbei, ich probiers noch einmal und wenn es dann nicht klappt bin ich ein hoffnungsloser fall!!
naja mein einziges Problem ist nicht die ausgabe, sondern, dass die buttons in einer Schleife stehen und als input dienen sollen.
Das Problem ist nur, dass die Schleife mir nicht die zeit lässt zu warten sondern einfach durchrauscht, ohne mich auch nur den button geklickt zu haben!
Verfasst: Dienstag 4. April 2006, 21:40
von knekke
Achtung, extrem schlampiger code:
Code: Alles auswählen
#!/usr/bin/python
import Tkinter as tk
a=5
root = tk.Tk()
warteAufMich = tk.IntVar()
warteAufMich.set(1)
def yo():
global warteAufMich, a
warteAufMich.set(1)
a -= 1
def main():
global a, root, warteAufMich
while a>0:
print a
root.waitvar(warteAufMich)
print "Ziel erreicht!"
a = 5
butt = tk.Button(root, text="start", command=lambda: main()).pack()
butt1 = tk.Button(root, text="Input", command=lambda: yo()).pack()
root.mainloop()
'waitvar()' ist das was du suchst ....aber ich kann dir dazu nix erklären, da ich das selber gerade kennengelernt habe. Hab' auch keine Ahnung ob es hier richtig verwendet wurde, aber es funktioniert erstmal. Bitte um Berichterstattung, wenn du weisst wie man das richtig benutzt...
Verfasst: Mittwoch 5. April 2006, 16:53
von oscar15
lol, ich würde ja gern sagen, dass es klappt und sicher klappt, es auch...naja...aber ich bekomme, die buttons jetzt nicht ausgegeben!!^^
Verfasst: Mittwoch 5. April 2006, 17:29
von knekke
und ich wuerde dir ja auch gerne sagen, dass ich dir an dieser Stelle helfen kann ohne deine Code zu sehen..... aber naja, das klappt leider nicht

Verfasst: Mittwoch 5. April 2006, 21:35
von oscar15
oki, jetzt ist es spät, schicke ihn morgen!!

Verfasst: Freitag 7. April 2006, 12:01
von Bernhard
Das scheint ein wirklich, wirklich geheimes Projekt zu sein, an dem Du da arbeitest.
Verfasst: Samstag 8. April 2006, 23:34
von oscar15
sry ich schaff es leider nicht mehr vor dem urlaub reinzustellen!
Und geheim soll es nicht unbedingt sein, wir haben nur ein wenig (*gg*) an einanderer vorbei geredet!!
sonnige Grüße