从Tkinter的窗口中获取列表值

时间:2019-01-16 19:38:08

标签: python list tkinter types casting

我想知道是否有可能从tkinter条目中获取值作为列表(包括类型)。

from tkinter import *

window = Tk()
base = '1,None,1'
items = StringVar(window, value=base)

def submit():
    result = list(items.get().split(','))
    print(result)

Entry(window, bg='white', textvariable=items).place(relx=0.1, rely=0.1, anchor='nw') 
Button(window, text='Submit', command=submit).place(relx=0.9, rely=0.9, anchor='se')

window.mainloop()

这将提供输出['1', 'None', '1'],而我需要的是[1, None, 1]。如果解决方案需要遍历列表并检查每个元素,如何将字符串'None'更改为NoneType

3 个答案:

答案 0 :(得分:1)

您可以使用各种方法来检查字符串等于什么。

这是获得所需结果的简单示例。 请记住,它可能需要其他所需的值,但您可以对其进行添加。

> dt[, sum(x, na.rm = T), by = "y"]
   y V1
1: a 38
2: b 38
3: c 17
4: d 26

答案 1 :(得分:1)

tkinter没有内置的东西可以以字符串形式以外的任何形式返回入口小部件的内容。但是,您当然可以获取值并根据所需的任何规则(例如,用空格或逗号分隔)对其进行解析。

在您的特定示例中,由于您为包含单词None的字符串显式设置了一个值,因此您可以检查该特定字符串并进行转换。例如:

def submit():
    result = [None if x.strip() == 'None' else x for x in items.get().split(',')]
    print(result)

答案 2 :(得分:0)

您可以通过处理条目的结果来做到这一点:

 @model List<NePisirsem.Models.EntitiyFramework.iletisim>
 @foreach (var item in Model)
    {
        <tr>
            <td>@item.Ad</td>
            <td>@item.Email</td>
            <td>@item.Konu</td>
            <td>@item.Mesaj</td>
        </tr>
    }