0

我在 Python 2.6 中使用 Tk 时遇到了问题。我有一个使用 Python 包装器从 xml 代码自动构建的 GUI。除了包含以下布局的部分之外,一切都很好:

第 1 行:[Label1] [Button1] [Frame1a[Label][Entry]] [Frame1b[Label][Entry]]

第 2 行:[Label2] [Button2] [Frame2a[Label][Entry]] [Frame2b[Label][Entry]]

问题是,由于某种原因,如果我在第 1 行的 Frame1a[Entry] 中输入一个值,我输入的数字也会被复制到第 2 行的 Frame2a[Entry]。对于第 1b/2b 帧也是如此。我在最初创建框架并使用小部件填充它们时检查了它们,它们都是单独的框架,唯一的链接元素是第一个参数 self.root。此外,我使用 frame.grid() 将它们添加到主窗口。

有谁知道这种情况何时发生?如果需要,我可以发布代码,尽管我不想这样做。我四处搜寻,但似乎没有其他人遇到过这个问题。

谢谢

编辑:发布一些代码

def new_frame_setup(self, name, options, row_idx=0):

    label   = tk.Label(self.root, text=name, font=("Helvetica", 16))

    _master_frame = tk.Frame(self.root, borderwidth=1, relief="ridge")
    for edit_idx in xrange(len(options)):
      _sub_frame = tk.Frame(_master_frame, borderwidth=1, padx=5, relief="ridge"))
      _sub_frame.grid(row=0, column=edit_idx)
      tk.Label(_sub_frame, text=options[edit_idx][0]+options[edit_idx][1], width=5, font=("Helvetica", 16)).grid(row=0, column=2*edit_idx)
      s = tk.StringVar()
      s.set('%s' % (row_idx))
      tk.Entry(_sub_frame, textvariable=s, text=options[edit_idx][2], width=10, font=("Helvetica", 12)).grid(row=0, column=2*edit_idx+1)

    button  = tk.Button(self.root, text='GoGoGo', font=("Helvetica", 12), command=None)
    self._frame_layouts.append([label, _master_frame, button])
4

1 回答 1

0

如果生成的代码将相同的变量分配给textvariable两个或多个条目小部件的属性,则会发生这种情况。

于 2013-03-04T11:26:01.813 回答