Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter条目列表不可能?_Python_List_Tkinter_Tkinter Entry - Fatal编程技术网

Python Tkinter条目列表不可能?

Python Tkinter条目列表不可能?,python,list,tkinter,tkinter-entry,Python,List,Tkinter,Tkinter Entry,从Tkinter中的用户输入接收列表是完全不可能的吗?类似于HTML文本框的东西——用户可以(1)将一个列表复制并粘贴到文本框中,然后(2)tkinter将输入列表转换为一个字符串列表,然后(3)可以将它们分配给一个值并执行有趣的python操作等 我有理由相信我能完成第(2)部分和第(3)部分,但我坚持第(1)部分 我已经探索了入口,它基本上实现了这一点,但是很笨拙,在小的入口框中粘贴的项目的可见性很差。我已经探索了Listbox,它不允许用户以从无到有的方式生成新列表的方式进行输入 运行的示

从Tkinter中的用户输入接收列表是完全不可能的吗?类似于HTML文本框的东西——用户可以(1)将一个列表复制并粘贴到文本框中,然后(2)tkinter将输入列表转换为一个字符串列表,然后(3)可以将它们分配给一个值并执行有趣的python操作等

我有理由相信我能完成第(2)部分和第(3)部分,但我坚持第(1)部分

我已经探索了入口,它基本上实现了这一点,但是很笨拙,在小的入口框中粘贴的项目的可见性很差。我已经探索了Listbox,它不允许用户以从无到有的方式生成新列表的方式进行输入

运行的示例是:如果我想在变量中输入一些杂货,我可以复制粘贴文本列表并将粘贴为一个项目(而不是单独粘贴)——

例如:[“苹果”、“橙子”、“覆盆子”]点击提交VS[“苹果”]点击提交[“橙子”]点击提交[“覆盆子”]点击提交

--对于像tkinter的输入框这样难以捉摸的文本区域,有人有什么建议吗?我是不是要和这个小盒子搏斗一下?

你想要一个小盒子吗

您可以使用
textarea检索文本。以正常方式获取

result = textarea.get(1.0, 'end')     # get everything
result = textarea.get(1.0, 'end-1c')  # get exactly what the user entered
                                      # (minus the trailing newline)

分享一个最小的例子?拿着:
苹果、桔子、覆盆子
并使用
inputfrombox.split(“,”
)来获取一个列表怎么样?我的问题不是提取到字符串列表中,而是用户如何将列表复制粘贴到tk界面中。你在寻找一个列表吗?也许吧!调查一下,从哪里抄来的?剪贴板没有“列表”的概念,它只能是一个字符串。您可能还想提到,如果在换行符上拆分,数据将是一个列表。此外,您通常希望使用
end-1c
而不是
end
,因为后者将自动拾取tkinter添加的额外换行,
end-1c
是准确获取用户输入内容的标准方法。@BryanOakley OP似乎很有信心,一旦他知道如何生成结果,他就可以将文本操纵到他想要的结果,因此我将把
分隔线
保留在外,不过我在这里包括了你的评论(事实上我不知道,我总是在吃过东西后绊倒!)
result = textarea.get(1.0, 'end')     # get everything
result = textarea.get(1.0, 'end-1c')  # get exactly what the user entered
                                      # (minus the trailing newline)