1

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

 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)

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

4

2 回答 2

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(","))
于 2013-08-17T16:49:44.353 回答
0

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

self.listEntry = [int(x) for x in Entry(self).split(',')]
于 2013-08-17T16:33:29.227 回答