Emek Kırarslan
Emek Kırarslan

Reputation: 313

How do I disable Entry in tkinter?

def com():
    ...
    entryy=Entry()
    entryy.pack()
    
    button=Button(text="Enter!", command=com, font=(24))
    button.pack(expand="yes", anchor="center")

As I said how do I disable Entry in com function?

Upvotes: 21

Views: 66502

Answers (2)

Osama Shakeel
Osama Shakeel

Reputation: 137

if we want to change again and again data in entry box we will have to first convert into Normal state after changing data we will convert in to disable state

import tkinter as tk
count = 0

def func(en):
    en.configure(state=tk.NORMAL)
    global count
    count += 1
    count=str(count)
    en.delete(0, tk.END)
    text = str(count)
    en.insert(0, text)
    en.configure(state=tk.DISABLED)
    count=int(count)


root = tk.Tk()

e = tk.Entry(root)
e.pack()

b = tk.Button(root, text='Click', command=lambda: func(e))
b.pack()

root.mainloop()

Upvotes: 3

falsetru
falsetru

Reputation: 369134

Set state to 'disabled'.

For example:

from tkinter import *

root = Tk()
entry = Entry(root, state='disabled')
entry.pack()
root.mainloop()

or

from tkinter import *

root = Tk()
entry = Entry(root)
entry.config(state='disabled') # OR entry['state'] = 'disabled'
entry.pack()
root.mainloop()

See Tkinter.Entry.config


So the com function should read as:

def com():
    entry.config(state='disabled')

Upvotes: 45

Related Questions