Buch-Programm stürzt ab - warum?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Strawk
User
Beiträge: 227
Registriert: Mittwoch 15. Februar 2017, 11:42
Wohnort: Aachen
Kontaktdaten:

Hallo!

Warum stürzt folgendes Programm unter Python 2.7 ab? Erst "keine Rückmeldung", dann "Programm schließen".

Code: Alles auswählen

#!/usr/bin/env python
# tkhello.py -- Hello, World as a Tkinter application

import sys
from Tkinter import *

def build_gui():
    "Build the GUI. Return root, entry, and personalized greeting label"

    rootWindow = Tk()
    rootWindow.wm_geometry("500x200")
    
    label1 = Label(rootWindow)
    label1['text'] = "Hello, Tkinter World!"
    label1.pack()
    
    label2 = Label(rootWindow)
    label2['text'] = "What's your name?"
    label2.pack()

    nameEntry = Entry(rootWindow)
    nameEntry.bind('<Key-Return>', entry_callback)
    nameEntry.pack(fill=X)

    okButton = Button(rootWindow)
    okButton['text'] = 'OK'
    okButton['command'] = entry_callback
    okButton.pack(fill=X)
    
    exitButton = Button(rootWindow)
    exitButton['text'] = 'Exit'
    exitButton['command'] = exit_callback
    exitButton.pack(fill=X)

    outLabel = Label(rootWindow)
    outLabel['text'] = ''
    outLabel.pack()
    
    return rootWindow, nameEntry, outLabel

def entry_callback(event=None):
    "Called when the Return key is hit in the entry field or OK is clicked"
    name = theEntry.get()
    theLabel['text'] = "Nice to meet you, %s" % name

def exit_callback():
    "Called when the Exit button is hit"
    sys.exit(0)

def main():
    global theRoot, theEntry, theLabel
    theRoot, theEntry, theLabel = build_gui()
    theRoot.mainloop()

if __name__ == '__main__':
    main()
Grüße
Strawk
Ich programmiere erfolglos, also bin ich nicht.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

kann ich nicht nachvollziehen. Läuft hier wie gewünscht. Was die Struktur des Codes nicht besser macht - aber läuft.

System: Ubuntu 16.04, Python 2.7.12 aus den Paketquellen, Paket python-tk aus den Paketquellen-

Gruß, noisefloor
funkheld
User
Beiträge: 258
Registriert: Sonntag 31. Oktober 2010, 09:26

Hallo, ich kann keinen Fehler finden.

Ich habe mit Win10 Python 2.7.14 auf dem Notebook.

Es läuft wenn ich es mit der python.exe starte und läuft auch als Compilat von der py2exe.
Ich kann den Text eingeben und der wird unten mit der Begrüßung ausgedruckt.

Gruss
Benutzeravatar
Strawk
User
Beiträge: 227
Registriert: Mittwoch 15. Februar 2017, 11:42
Wohnort: Aachen
Kontaktdaten:

Hallo!

Und das Programm stürzt auch dann nicht ab?:
  • Anaconda Navigator Spyder
  • Betätigung des Exit-Buttons
Grüße
Strawk
Ich programmiere erfolglos, also bin ich nicht.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

exit-Button funktioniert wie er soll. Anaconda / Spyder installiere ich mir jetzt dafür aber nicht extra auf meinem Linux-System.

Gruß, noisefloor
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo Strawk,
läuft auf Ubuntu 16.04.3 LTS/Linux 4.4.0-116-generic (x86_64)/Desktop XFCE4.

Gruß Frank
Antworten