Mainloop Interrupt
Verfasst: Freitag 25. September 2015, 18:59
hey,
ich habe in meinem code:
folgendes problem:
wenn man nach dem starten in einem (oder mehreren der label) einen buchstaben eingibt,
zeigt das programm das richtigerweise an, allerdings drückt man dann auf 'zurück' werden nur
die fenster geschlossen, das programm bleibt aber im mainloop!
versteh ich nicht? abhilfe?
ich habe in meinem code:
Code: Alles auswählen
# -*- coding: cp1252 -*-
#!/usr/bin/env python
from Tkinter import *
import tkMessageBox
datetum = [['01.09.2015']]
liste = [[u'15', u'45', 9, 9]]
ueber = [[0]]
istSum = 9
sollSum = 9
ueberSum = 0
try:
root.destroy()
except:
pass
rootWin = Tk()
rootWin.title('GUI-VERWALTUNG')
rootWin.geometry('+500+50')
label_0 = Label(rootWin, text=("' UEBERSICHT '"),font=('Arial', 12, 'bold underline'), height=3, width=18, fg="#000000000", justify='left')
label_0.grid(row=0, column=1, columnspan=2)
label_1 = Label(rootWin, height=3,width=18, fg="#000000000", justify='center')
label_1.grid(row=2, column=0)
label_2 = Label(rootWin, height=2,width=18, fg="#000000000", justify='center')
label_2.grid(row=7, column=0)
label_3 = Label(rootWin, height=3,width=18, fg="#000000000", justify='center')
label_3.grid(row=10, column=0)
entries = []
datList = []
dateSum = []
for row, items in enumerate(datetum):
for column, item in enumerate(items):
label_4 = Label(rootWin,text=(item),font=('Arial', 9, 'bold'), width=18, relief="raised",bg='#cdc8b1', fg="#000000000", justify='center')
label_4.grid(row=row+10, column=column)
ruben = []
ruben.append(item)
dateSum.append(item)
datList.append(ruben)
for row, items in enumerate(liste):
for column, item in enumerate(items):
v = StringVar()
v.set(item)
en = Entry(rootWin, textvariable = v, width=18, relief="raised",font=('Arial', 9, 'bold'), bg='#eeeee0', fg="#000000000", justify='center')
en.grid(row=row+10, column=column+1)
entries.append(en)
for row, items in enumerate(ueber):
for column, item in enumerate(items):
label_5 = Label(rootWin,text=(item),font=('Arial', 9, 'bold'), width=18, relief="raised", bg='#cdc8b1',fg="#000000000", justify='center')
label_5.grid(row=row+10, column=column+5)
label_6=Label(rootWin, text=('Summe:'), width=18, relief="ridge", font=('Arial', 9, 'bold'), bg='#eecbad', fg="#000000000", justify='center').grid(column=0, row=row+11)
label_7=Label(rootWin, text='---', width=18, relief="ridge",font=('Arial', 9, 'bold'), bg='#eecbad', fg="#000000000", justify='center').grid(column=1, row=row+11)
label_8=Label(rootWin, text='---', width=18, relief="ridge",font=('Arial', 9, 'bold'), bg='#eecbad', fg="#000000000", justify='center').grid(column=2, row=row+11)
label_9=Label(rootWin, text=(istSum), width=18, relief="ridge",font=('Arial', 9, 'bold'), bg='#eecbad', fg="#000000000", justify='center').grid(column=3, row=row+11)
label_10=Label(rootWin, text=(sollSum), width=18, relief="ridge",font=('Arial', 9, 'bold'), bg='#eecbad', fg="#000000000", justify='center').grid(column=4, row=row+11)
label_11=Label(rootWin, text=(ueberSum), width=18, relief="ridge",font=('Arial', 9, 'bold'), bg='#eecbad', fg="#000000000", justify='center').grid(column=5, row=row+11)
def aktuellUeber(entries):
aktueller = []
for entry in entries:
aktueller.append(entry.get())
try:
for kaunt in aktueller:
a = float(kaunt)
print a
except:
import Tkinter
window = Tkinter.Tk()
window.wm_withdraw()
window.geometry("1x1+200+200")
tkMessageBox.showerror(title="GUI-VERWALTUNG",message="EINGABEFEHLER:\n\nBitte gib eine nichtnegativen ganze Zahl als Kontonummer ein!",parent=window)
b_a2 = Button(rootWin, text = ' Aktualisieren ', command=lambda: aktuellUeber(entries))
b_a2.grid(row=4, column=5)
def zurueckTable():
rootWin.destroy()
b_a3 = Button(rootWin, text = ' Zurueck ', command = zurueckTable)
b_a3.grid(row=7, column=5)
rootWin.mainloop()
wenn man nach dem starten in einem (oder mehreren der label) einen buchstaben eingibt,
zeigt das programm das richtigerweise an, allerdings drückt man dann auf 'zurück' werden nur
die fenster geschlossen, das programm bleibt aber im mainloop!
versteh ich nicht? abhilfe?