用tk创建一个简单对话框,输入数量可变,然后输出

时间:2019-01-10 13:36:25

标签: python-3.x tkinter tk simpledialog

我正在尝试创建一个简单的对话框,您可以在其中输入数字。但是输入的数量确实取决于数据集,从技术上讲,人们正在使用它来将行输入到数据集中。

我不知道如何使它工作。

我曾尝试将'e1'对象放入字典中,然后再使用它们,但这会导致未知的选项错误

class MyDialog(simpledialog.Dialog):
def body(self, master):
    d2={}
    f={}
    for i in range(len(df_data_1.columns) -1 ):
        Label(master, text=df_data_1.columns[i]).grid(row=i)
        self.e1 = Entry(master)
        self.e1.grid(row=i, column=1)
        d2[df_data_1.columns[i]] = self.e1.get()

        print(d2[df_data_1.columns[i]])
    return self.e1
    print(self.e1)
    f[df_data_1.columns[i]]=self.e1
    return d2 # initial focus
    return f
    print(f)

def apply(f):
    for x in range(len(df_data_1.columns) -1 ):
        d2[df_data_1.columns[x]] = f[df_data_1.columns[x]].get()
        print(d2[df_data_1.columns[x]])
    first = d2
    print(first)

root = Tk()
d = MyDialog(root)
print (d.result)  

1 个答案:

答案 0 :(得分:0)

您需要将实例存储在列表中。代码的问题在于,在循环的每次迭代中您都覆盖RelativeLayout

它看起来像这样(未经测试,因为您没有提供给我们代码,我们可以运行以重复该问题):

self.e1

您以后可以像这样遍历所有条目:

self.entries = []
for i in range(len(df_data_1.columns) -1 ):
    Label(master, text=df_data_1.columns[i]).grid(row=i)
    entry = Entry(master)
    entry.grid(row=i, column=1)
    self.entries.append(entry)