我有一个小应用程序,它接受一串数字,通过一个函数运行它们,并吐出输出。对于列表条目,我有以下设置:
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)
然后继续概述如何运行数字并告诉程序给出输出。
答案 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(',')]