在tkinter中存储来自输入框的数据

时间:2015-04-14 22:10:49

标签: python list button tkinter

我得到了建立商店程序的任务。现在,客户必须注册才能购买,我创建了一个主窗口,其中包含我需要执行的每个操作的按钮。当用户尝试注册另一个窗口时,显示完成注册所需的数据。现在如何将输入框中的数据存储到带有按钮的列表中?

以下是我如何设置用户需要填写的每个框的示例:

var1 = StringVar()
var1.set("ID:")
label1 = Label(registerwindow,textvariable=var1,height = 2)
label1.grid(row=0,column=1)

ID=tkinter.StringVar()
box1=Entry(registerwindow,bd=4,textvariable=ID)
box.grid(row=0,column=2)

botonA= Button(registerwindow, text = "accept",command=get_data, width=5)
botonA.grid(row=6,column=2)

我尝试设置按钮来运行获取输入的功能,但我现在正在工作。这就是我做的事情

def get_data():
    print (box1.get())

2 个答案:

答案 0 :(得分:2)

一些问题:

  1. 除非你import tkinterfrom tkinter import * - 你不应该这样做;只需选择一个 - 您的程序就会在var1 = StringVar()ID=tkinter.StringVar()上阻塞。
  2. 在将get_data()函数绑定到Button之前定义box1函数。
  3. 您已分配grid,但随后box ded list
  4. 以下示例将获取该框的内容,将其添加到list,并在每次单击“#34;接受”时将grid打印到控制台。&#34 ;替换父窗口的名称,每个窗口小部件的from tkinter import * root = Tk() root.wm_title("Your program") mylist = [] def get_data(l): l.append(box1.get()) print(l) var1 = StringVar() var1.set("ID:") label1 = Label(root,textvariable=var1,height = 2) label1.grid(row=0,column=0) ID=StringVar() box1=Entry(root,bd=4,textvariable=ID) box1.grid(row=0,column=1) botonA= Button(root, text = "accept",command=lambda: get_data(mylist), width=5) botonA.grid(row=0,column=2) root.mainloop() 位置等,以适合您的程序。

    {{1}}

答案 1 :(得分:-1)

要检索该值,您需要访问它所附加的变量,而不是屏幕上的输入字段:

def get_data():
    print (ID.get())