允许通过GUI更改Tkinter Entry字段中预设文本的值

时间:2014-07-23 14:31:55

标签: python tkinter

我有下面的代码来创建一个完整的输入字段,但是虽然所有字段都已正确创建,但是在GUI中选择它们时我无法理解这些值。我可以点亮已经制作的文字,但从不输入任何内容。有没有人有任何想法为什么会这样。

 #importystuffs#


def makeform(check, fields,values):
  entries = []
  for field in fields:
  row = tk.Frame(check)
  lab = tk.Label(row, width=15, text=field, anchor='w')
  ent = tk.Entry(row)

  #ent.insert(tk.END, values[field])

  ent.configure(state=tk.NORMAL)
  row.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)
  lab.pack(side=tk.RIGHT)
  ent.pack(side=tk.RIGHT, expand=tk.YES, fill=tk.X)
  entries.append((field, ent))

  return entries


#program
f= open ('input.details', 'r')
e = [ line.replace('\n','') for line in f.readlines()] 

names=[ 'Name', 'Address_line1','Address_line2','Email','Standard','LC','other']
values= dict(zip(names,e))

check = tk.Tk()
check.overrideredirect(True)


#bg image
im = Image.open('img2.png')
tkimage = ImageTk.PhotoImage(im)
myvar=tk.Label(check,image = tkimage)
myvar.place(x=0, y=0, relwidth=1, relheight=1)

ents = makeform(check, names,values)

或者以这种方式编写代码也会给我带来同样的问题

button={}
   for element in names:
       infoz = tk.Label(frame, text=element ,bg='white')
       infoz.pack()
       button[element] = tk.Entry(frame)
       button[element].pack()
       button[element].insert(10, values[element])

 #print z.get()   

print button['Name'].get()

z = tk.Entry(frame)
z.pack()


check.focus_force()
check.after(10000, run_program)   # kills program     
check.mainloop()  

1 个答案:

答案 0 :(得分:1)

至于我,你的问题是check.overrideredirect(True)

你用它来制作没有边框的窗口(或制作全屏程序),但在某些系统中它也没有键盘访问该窗口。