How if condition and clear the entry works in tkinter?

tkinter entry
tkinter entry default value
tkinter clear entry on click
tkinter entry validate
tkinter entry delete
tkinter entry placeholder
tkinter entry textvariable
tkinter input dialog box
def Input(PIn , BIn , AIn) :
    if (PIn ==0) and (BIn ==0) and (AIn == 0)  :
         print ("ok")

    else :
         str(PIn)
         int(BIn)
         int(AIn)
         global n
         proc.append([PIn , BIn , AIn ])
         n+=1
         PIn.delete(0,END)
         BIn.delete(0,END)
         AIn.delete(0,END)
         print(proc , n)

I am trying to convert my python CODE to GUI but I have two problems. The first one is the if-statement is not working so if the user has entered 0 for all variables it will go to the else. the second one is that I can not clear the entry.

If you want to edit/ get a value from the Entry widget of tkinter you need to use

tkinter.StringVar()

PIn_text_var = StringVar() 
PIn = Entry(root, textvariable=PIn_text_var)

#To edit the widget's text : 

PIn_text_var.set("new value") 

#To get the widgets text :

s = PIn_text_var.get()
print(s) 
# output : 'new value'

If you want to clear the Entry widget's text :

PIn_text_var.set("") 

So as for your example :

PIn_text_var = tkinter.StringVar() 
BIn_text_var = tkinter.StringVar() 
AIn_text_var = tkinter.StringVar()

proc = []
n = 0 

def Input () :
    global n

    P = PIn_text_var.get()
    B = BIn_text_var.get()
    A = AIn_text_var.get() 

    if (P=="0") and (B=="0") and (A=="0") : 
        print ("ok") 

    else : 
        temp_var_p = P
        temp_var_b = int(B)
        temp_var_a = int(A)

        proc.append([temp_var_p, temp_var_b, temp_var_a ]) 

        PIn_text_var.set("")
        BIn_text_var.set("")
        AIn_text_var.set("")
        n+=1
        print(proc , n)

Python - Tkinter Entry, Python - Tkinter Entry - The Entry widget is used to accept single-line text strings Jobs � Tools � Coding Ground � Current Affairs � UPSC Notes � Online Tutors If you want to display multiple lines of text that can be edited, then you should use the Clears the selection. If there is a selection, returns true, else returns false. As the entry widget in Tkinter is used for designing a textbox here in this example we have used this option to design a textbox with two action buttons associated to it. One is the clear button which is used for erasing the content of the textbox and the other one is the redisplay button which generates a message prompt holding the value

On your first issue, typically TKinter entry widgets will pass the values through as strings. It's difficult to say with certainty since you haven't provided sample code for PIn, BIn, AIn variables, but it is likely you are comparing a string to an integer, which will evaluate to false.

Try replacing the if statement with either if (PIn == "0") and (BIn == "0") and (AIn == "0"): (which will compare strings with strings), or with if (int(PIn) == 0) and (intBIn) == 0) and (int(AIn) == 0): (which will compare integers with integers).

On your second point I think you will need to provide more detail on what kind of widgets PIn, BIn and AIn are.

tkinter e.delete(0,END) Code Example, Get code examples like "tkinter e.delete(0,END)" instantly right from your google search results with the Grepper Chrome Extension. if __name__ == "__main__ ": tkinter clearing entry � entry widget delete does not work � tkinter print dataframe python on a if condition of a value</3 � filter dataframe with� Returns the entry's current text as a string. 3: icursor ( index ) Set the insertion cursor just before the character at the given index. 4: index ( index ) Shift the contents of the entry so that the character at the given index is the leftmost visible character. Has no effect if the text fits entirely within the entry. 5: insert ( index, s )

The problem is that you are comparing the widget itself to a value. The widget is not the same thing as the value. You must first get the value from the widget before you can compare it to anything.

Since the get method of an entry will return a string, I recommend comparing against strings. The other option is to convert the value to an integer before comparing, though in that case you have to be prepared to handle the case where the user enters something that can't be converted to an integer.

if (PIn.get() == "0") and (BIn.get() == "0") and (AIn.get() == "0") ...

GUI Programming with Python: Entry Widgets, Tutorial on Tkinter: Communication with the User by using Entry Widgets. If you want to enter multiple lines of text, you have to use the text widget. The comma separated list of options can be empty. "Every exit is an entry somewhere else. not harm your work or, through inaction, allow your work to come to harm. Tkinter supports a variety of methods to perform various tasks. It also offers some universal method. destroy() is a universal widget method i.e we can use this method with any of the available widgets as well as with the main tkinter window.

Python- Learn Use of Tkinter GUI Programming with Python, Learn how to use Tkinter in developing GUI based Python programs. Tk toolkit tkinter.font, Utilities to help work with fonts. Following code snippet displays an empty top level window. To add an entry widget in top window, use following statement: from tkinter import * def handler(): if v1.get()==1: print ("I play Guitar. import Tkinter parent_widget = Tkinter.Tk() entry_widget = Tkinter.Entry(parent_widget) entry_widget.insert(0, "Type your text here") entry_widget.pack() Tkinter.mainloop() Radiobutton Widget. A Radiobutton lets you put buttons together, so that only one of them can be clicked. If one button is on and the user clicks another, the first is set

Python Tkinter - Validating Entry Widget, 10-03-2020. Python offers a variety of frameworks to work with GUI applications. for valid entry. If the entry is valid it returns True else False. Entry: Entry widget is used to create input fields or to get input text from the user within the GUI. Syntax: entry_widget = tk.Entry(widget, option=placeholder) where widget is the parameter for the parent window/frame while option is a placeholder that can have various values like border-width, background color, width & height of button etc.

The Tkinter Text Widget, Like Python sequence indexes, text widget indexes correspond to positions between the actual characters. Tkinter provides a If you insert or delete text before a mark, the mark is moved along with the other text. This method only works if the text widget is updated. To make Returns: A true value if the condition is true. Python - Tkinter Radiobutton - This widget implements a multiple-choice button, which is a way to offer many possible selections to the user and lets user choose only one of them.

Comments
  • Where do you run Input? Have you confirmed PIn, BIn, and AIn are all integers? As a reminder, "0" =/= 0. Alos, in the else statement, PIn is set to str and the other two are set to int. Is that correct?
  • You don't need to use StringVar. You can, but more often than not it's just extra overhead that doesn't add any real value. The widget itself has methods for getting and setting the values.
  • PIn, BIn and AIn are Entries such that || AIn = tk.Entry(frame , bg= 'white' , fg = 'black' ) AIn.place(relx= .35 , rely = 0.6 ,relwidth = 0.30 , relheight = 0.05) ||