在Python中更改列表条目的语法(Tkinter)

时间:2013-08-17 16:23:59

标签: tkinter

我有一个小应用程序,它接受一串数字,通过一个函数运行它们,并吐出输出。对于列表条目,我有以下设置:

 def create_widgets(self):
        self.entryLabel = Label(self, text="Please enter a list of numbers:")
        self.entryLabel.grid(row=0, column=0, columnspan=2)      

        self.listEntry = Entry(self)
        self.listEntry.grid(row=0, column=2, sticky=E)

然而,这只允许我输入字符串(例如123451011),而我希望它能够识别单个数字(例如1,2,3,4,5,10,11)。我想我基本上要问的是能够使用列表而不是字符串。有没有办法改变self.listEntry来处理这个?有没有我可以添加到我的函数中的东西(目前输入valueList = list(self.listEntry.get()))?谢谢!

编辑:

我定义了一个函数如下:

    def Function(self):
        valueList = list([int(x) for x in self.listEntry.get().split(",")])
        x = map(int, valueList)

然后继续概述如何运行数字并告诉程序给出输出。

2 个答案:

答案 0 :(得分:2)

您可以这样做:

import Tkinter as tk

root = tk.Tk()

entry = tk.Entry()
entry.grid()

# Make a function to go and grab the text from the entry and split it by commas
def get():
    '''Go and get the text from the entry'''

    print entry.get().split(",")

# Hook the function up to a button
tk.Button(text="Get numbers", command=get).grid()

root.mainloop()

或者,如果您希望它们都是整数,请更改此行:

print entry.get().split(",")

到此:

print map(int, entry.get().split(","))

答案 1 :(得分:0)

您可以在输入中使用split,然后将int映射到生成的列表。

self.listEntry = [int(x) for x in Entry(self).split(',')]