2017-07-02 1 views
-1

Ich werde Programm schreiben, das nur eine Zahl mit (123) berechnen und Summe von mir zeigen. Aber ich möchte einen Code schreiben, der, wenn die (Summe) Taste gedrückt wird, dies tut: {Wenn das Feld keinen ganzzahligen Typ von Nummer hat, rufen Sie die Funktion errorMsg auf und berechnen Sie die Zahlen}, aber ich weiß nicht, wie ich das machen kann. Bitte helfen Sie!Wie Funktion in {if} Anweisung aufrufen, wenn das Eingabefeld leer ist?

from tkinter import * 
frame = Tk() 
def textBoxes(): 
    global e1  
    e1 = Entry(frame,justify=LEFT) 

def labels(): 
    var1 = StringVar() 
    var1.set("Enter first number: ") 
    label1 = Label(frame, textvariable = var1) 
    var3=StringVar() 
def errorMsg(): 
    msg = messagebox.showinfo("Please Enter Some Number!")  
def calculator():  
    #def __init__(self,String_value1,String_value2,sum_result) 
    String_value1 = e1.get() 
    Int_value1 = int(String_value1)  

    if not(String_value1.get()): 
     errorMsg() 
    else: 
     sum_result = Int_value1 + 123 

def buttons(): 
    B1 = Button(frame, text="Sum", command=calculator) 

buttons() 
labels() 
textBoxes() 
frame.mainloop() 
+0

Sie sollten das wirklich reduzieren bis auf eine [MCVE] – Carcigenicate

+0

was bedeutet es? –

+0

Klicken Sie auf den Link. Versuchen Sie, den Code auf ein kleineres Beispiel zu reduzieren. Die Frage ist nicht sehr klar. – Carcigenicate

Antwort

0

In Ihrem Rechner Methode, statt zu überprüfen, ob es leer ist oder nicht, versuchen Sie auf dem Wert zu betreiben und die Ausnahmen zu fangen, wenn es fehlschlägt. Es heißt Easier to ask for forgiveness than permission.

result = StringVar() 
def calculator(): 
    try: 
     user_input = int(e1.get()) 
     result.set(str(user_input+123)) #or however you like to show this 
    except ValueError: 
     errorMsg() 

kleine Schnipsel, mit Ihrem Code:

import tkinter as tk 
from tkinter import messagebox 

frame = tk.Tk() 
var1 = tk.StringVar() 
var3 = tk.StringVar() 
ent1 = tk.Entry(frame,justify="left") 
var1.set("Enter first number: ") 
var3.set("Result") 

def textBoxes(): 
    ent1.pack() 

def labels(): 
    tk.Label(frame, textvariable=var3).pack() 
    tk.Label(frame, textvariable=var1).pack() 

def errorMsg(): 
    messagebox.showinfo("Error", "Please enter a valid number!") 

def calculator(): 
    try: 
     user_input = int(ent1.get()) 
     var3.set("Result = "+str(user_input+123)) 
    except ValueError: 
     var3.set("Please enter a valid number!") 
     errorMsg() 

def buttons(): 
    tk.Button(frame, text="Sum", command=calculator).pack() 

labels() 
textBoxes() 
buttons() 

frame.mainloop() 
+0

Ihre Lösung hat funktioniert. Vielen Dank –

Verwandte Themen