我有下面的代码来创建一个完整的输入字段,但是虽然所有字段都已正确创建,但是在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()
答案 0 :(得分:1)
至于我,你的问题是check.overrideredirect(True)
。
你用它来制作没有边框的窗口(或制作全屏程序),但在某些系统中它也没有键盘访问该窗口。