Maq92
Maq92

Reputation: 295

Entries in Tkinter

I'd like to make a program which takes an integer from user and makes as many entries in a Tkinkter window. Then It'll make a graph base on them but for now I do not know how to make as many entries in my window. I tried something like this below but It does not work. Please help.. edit: oh and It's PyDev for Eclipse python 2.75

# -*- coding: utf-8 -*-

#import matplotlib.pyplot as mp
import Tkinter as T, sys
def end():
    sys.exit()
def check():
    z = e.get()

    try:
        z = int(z)
        e.config(bg = 'green')
        e.after(1000, lambda: e.config(bg = 'white'))
        x = []
        for i in (0,z):
            x.append(e = T.Entry(main, justify = 'center'))
            x[i].pack()            

    except:
        e.config(bg = 'red')
        e.after(1000, lambda: e.config(bg = 'white'))



z = 0
main = T.Tk()
main.title('something')
main.geometry('600x600')
main.config(bg = "#3366ff")

e = T.Entry(main,justify = 'center')
l = T.Label(main,text = 'Give me an N =',bg = '#3366ff')
b1 = T.Button(main, text = 'OK', command = check)
b = T.Button(main,text = 'Zakończ', command = end)





l.pack()
e.pack()
b1.pack()
b.pack()
main.mainloop()

Upvotes: 0

Views: 119

Answers (1)

Serial
Serial

Reputation: 8043

Make youre for-loop look like this:

for i in range(0,z):
    x.append( T.Entry(main, justify = 'center'))
    x[i].pack() 

you need to use range because when you dont it is only iterating through twice because it thinks its iterationg through a 2 item tuple instead of a list of numbers

also get rid of the e = so that it is just appending a new entry each time

Upvotes: 1

Related Questions