在下面的代码中,我需要返回所有返回的值(但是对于每一行分开),但我已经尝试lambda并失败,我再也没有得到任何地方。回调和n输入框小部件不能正常工作Tkinter
我也有回调定义它以前的工作,当我点击一个盒子,它删除灰色的文字,所以我可以继续输入黑色。
如果可能的话,我想在回调函数的末尾添加输入框的值,而不是保留'numberwritten'和'callback'。这可能吗?
添加的框数等于self.number_boxes,可以从1到n。
谢谢。
更新的代码:
self.numbers = [StringVar() for i in xrange(self.number_boxes) ]
for i in xrange(self.number_boxes):
row = (row_number +add)
column = self.column +i
key = "%d/%d" % (row,column)
self.clicked = ([False] * self.number_boxes)
self.choice_title = Label(self.frame_table, bg=self.mycolour, borderwidth=0, width=10)
self.choice_title.grid(row=1, column=self.column, columnspan=self.number_boxes, sticky="nsew", padx=1, pady=1)
self.choice_titles.append(self.choice_title)
self.box[key] = Entry(self.frame_table,bg='white',borderwidth=0, width=10, justify="center", fg='grey')
self.box[key].grid(row=row_number+add,column=self.column+i, sticky='nsew', padx=1, pady=1)
self.box[key].insert(0, "Value %g" % float(i+1))
self.box[key].bind("<Button-1>", lambda event, key=key, index=i : self.callback(event, key, index))
self.boxes.append(self.box[key])
def callback(self, event, key, index):
for not self.clicked[index]:
self.box[key].delete(0, END)
self.box[key].config(fg='black')
self.clicked[index] = True
print self.box[key].get()
我认为'1'需要是'我',否则行,列不工作。我只是简单地按照'print self.box [key] .get()'的方法完成,但需要考虑在回调中删除默认的灰色文本。 – user2063 2012-07-11 13:23:27
@ user2063:你是对的。我在我的答案中解决了这个问题 – 2012-07-11 13:28:31
查看已更新的代码,我尝试清除该框并读取用户插入的新值。我只设法清除盒子并打印一个空行(因为盒子现在是空的)。我如何让它等待或类似? – user2063 2012-07-11 13:52:13