Seite 1 von 1
Neues Fenster mit Ausgabe
Verfasst: Montag 11. Februar 2008, 21:53
von nightm4r3^
Hallo mal wieder,
seit meinem letzten Problem ist ein neues aufgetaucht. Ich würde gerne wissen, wie ich eine vorher festgelegte Variable in einem neuen Fenster ausgebe. Etwa so wie bei einem Print befehl
nur das halt das 'n' in ein neues Fenster gegeben wird. meine Versuche mit:
Code: Alles auswählen
m=tk.Entry(fenster2)
m.pack()
fenster2.label=tk.Label('Sie haben den Wert',m,eingegeben)
Wie geht das?
Bitte um Hilfe
nightm4r3

Verfasst: Montag 11. Februar 2008, 22:23
von BlackJack
Die Funktion `showinfo()` im Modul `tkMessageBox` könnte hilfreich sein.
Verfasst: Dienstag 12. Februar 2008, 10:35
von The Spirit
bei meinen projekten verwende ich auch das modul tkMessageBox.
sieht bei mir dann meist so aus.
Code: Alles auswählen
tkMessageBox.showinfo(';o)','Sie haben ' + n + ' eingegeben')
Verfasst: Mittwoch 13. Februar 2008, 09:30
von nightm4r3^
Ich habe es jetzt so gemacht.
Code: Alles auswählen
def ggt1():
lambda: ggt(int(m.get()), int(n.get()))
message=tk.MessageBox.showinfo('Der ggT ist:' + n + '')
allerdings bekomme ich jetzt die Fehlermeldung
Wodrann liegt das?
btw:
Die beiden Werte n und m wurden über 2 Entry Felder eingegeben.
Edit:Der Fehler oben kommt nicht mehr, aber das Programm hängt sich auf und läuft nicht weiter.
Bitte um Hilfe
Verfasst: Mittwoch 13. Februar 2008, 09:44
von BlackJack
Die Zeile mit dem ``lambda`` hat keinen Effekt, kann also komplett weg. Du definierst da eine anonyme Funktion und machst nichts damit.
Und der Fehler dürfte sein, dass Du versuchst eine Zeichenkette und ein `Entry`-Widget zu "addieren", jedenfalls wenn der Name `n` wirklich an dieser Stelle zu dem Zeitpunkt an ein `Entry` gebunden ist, wie es das ``n.get()`` in der Lambda-Funktion vermuten lässt.
Wieder mal ein gutes Beispiel dafür warum man nicht mit globalen Namen arbeiten sollte. Es ist total undurchsichtig wo `m` und `n` eigentlich herkommen.
Ausserdem müsste noch mehr Information zu der Ausnahme verfügbar sein. Zum Beispiel *was* für eine Ausnahme es ist und in welcher Zeile sie ausgelöst wird. Wenn Deine IDE das nicht anzeigt, starte das Programm mal von der Konsole.
Verfasst: Mittwoch 13. Februar 2008, 09:50
von nightm4r3^
Ich stell einfach mal das Komplette Programm rein weil ich den fehler nicht finde. es funktioniert alles bis auf die Ausgabe im anderen Fenster.
Code: Alles auswählen
def ggt1():
lambda: ggt(int(m.get()), int(n.get()))
message=tk.tkMessageBox.showinfo('Der ggT ist:' + n + '')
message.pack()
def aufgabe1():
#Nebenfenster
fenster2=tk.Toplevel()
fenster2.geometry('400x300')
#Label im Nebenfenster
fenster2.label=tk.Label(fenster2,text='ggT berechnen', font=('Verdana',16,'bold'))
fenster2.label.pack()
#2.Label im Nebenfenster
fenster2.label2=tk.Label(fenster2,text='Bitte geben Sie die erste Zahl ein')
fenster2.label2.pack()
#Entry Feld 1
m=tk.Entry(fenster2)
m.pack()
#3.Label im Nebenfenster
fenster2.label3=tk.Label(fenster2,text='Bitte geben Sie die zweite Zahl ein')
fenster2.label3.pack()
#Entry Feld 2
n=tk.Entry(fenster2)
n.pack()
#Button erstellen
fenster2.button=tk.Button(fenster2,text='Bestätigen',
command=ggt1)
fenster2.button.pack()
#Fenster anzeigen
fenster2.mainloop()
from funktionen import * #Die Datei beinhaltet eine Funktion für den ggT und wird auch geladen
import Tkinter as tk
fenster=tk.Tk(className='Hausaufaben')
fenster.geometry('400x300')
fenster.label=tk.Label(fenster,text='Bitte treffen Sie Ihre Auswahl', font=('Verdana',16,'bold'))
fenster.label.pack()
fenster.button=tk.Button(fenster,text='ggT berechnen',
command=aufgabe1)
fenster.button.pack()
fenster.mainloop()
Verfasst: Mittwoch 13. Februar 2008, 09:58
von nightm4r3^
http://rapidshare.com/files/91412453/python25.jpg.html
Das ist die Fehlermeldung. Sorry musste se bei rapidshare hochladen
Verfasst: Mittwoch 13. Februar 2008, 10:37
von BlackJack
Man kann auch bei Windows-Konsolen den Text kopieren. Das ist vielleicht einfacher als Screenshots vom ganzen Desktop zu machen und irgendwo hoch zu laden.
`tkMessageBox` ist ein *Modul* und kein Attribut des `Tkinter`-Moduls.
Und das nächste Problem dürfte dann werden, wo in der Funktion `ggt1` das `n` her kommt. Das wird nicht definiert. Und die `lambda`-Funktion wird nicht verwendet. Könnte sie auch gar nicht, weil weder `m` noch `n` in der `ggt1`-Funktion definiert sind.
Ich würde die `ggt1` lokal in der `aufgabe1` definieren. Dann kommt man problemlos an die Eingabe-Widgets heran.
Code: Alles auswählen
def do_ggt():
tkMessageBox.showinfo('Der ggT ist: ' + ggt(int(m.get()), int(n.get())))
Verfasst: Mittwoch 13. Februar 2008, 12:20
von nightm4r3^
Okay vielen Dank ich werde es versuchen.
mfg nightm4r3^
Verfasst: Mittwoch 13. Februar 2008, 18:20
von nightm4r3^
jetzt kommt der Fehler
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "E:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
return self.func(*args)
File "E:\Python25\hauptprogramm.pyw", line 29, in aufgabe1
command=tkMessageBox.showinfo('Der ggT ist: ' + ggt(int(m.get()), int(n.get()))))
NameError: global name 'tkMessageBox' is not defined
Sorry wenn ich euch de letzten nerv koste
Verfasst: Mittwoch 13. Februar 2008, 18:29
von Leonidas
nightm4r3^ hat geschrieben:Sorry wenn ich euch de letzten nerv koste
Wenn du Google vor dem Posten ausprobiert hättest, würdest du wissen warum. Die Lösung ist im ersten Treffer zu finden. Etwas Eigeninitiative darf man verlangen.
Verfasst: Mittwoch 13. Februar 2008, 18:43
von nightm4r3^
Und was hätte ich bitteschön bei Google suchen sollen?
Wofür sind denn Foren da???
Verfasst: Mittwoch 13. Februar 2008, 19:23
von Leonidas
nightm4r3^ hat geschrieben:Und was hätte ich bitteschön bei Google suchen sollen?
Wie wärs mit was offensichtlichen wie ``tkMessageBox``?
nightm4r3^ hat geschrieben:Wofür sind denn Foren da???
Um dir bei berechtigten Fragen zu helfen. Fragen bei denen eine Google-Suche innerhalb einer Minute zu einer verhilft sind quatsch. Foren sind nicht da um Leuten Zeug vorzukauen.
Verfasst: Donnerstag 14. Februar 2008, 20:29
von Vingdoloras
Google ist dazu da, um kluge Hilfen im Internet zu finden, zum Beispiel in Foren, wo die Frage möglicherweise schonmal beantwortet wurde... nur ist es eine Kunst für sich, Google richtig zu benutzen.
Man kann froh sein, dass man hier noch Suchworthilfen für Google bekommt, ich habe in anderen Foren schon Beiträge gesehen, die sagen "da findest du die Lösung" und hintendran den Link
www.gidf.de
schau ihn dir an, merke ihn dir und sei nicht böse, wenn jemand so etwas schreibt... ich habe selbst manchmal Probleme, mit Google das erwünschte Ergebnis zu erzielen, aber was nich is kann noch werden

Aber Foren sind wirklich nicht dazu da, jede Frage immer wieder auseinanderzuziehen...
du solltest etwas mehr Fantasie in die Verteilung der Variablennamen stecken