如何创建一个tkinter文本输入的数组,每行文本为数组中的一个元素

-1 投票
2 回答
2818 浏览
提问于 2025-04-18 10:45

我有这段代码:

def full_function():
    options=text.get(1.0, END)
    print options

from Tkinter import *

root = Tk()

text = Text(root,font=("Purisa",12))
text.pack()

button=Button(root, text ="Button", command =lambda: full_function())
button.pack()

root.mainloop()

我该如何让这个程序创建一个文本输入的数组,也就是说每一行文本都应该是数组中的一个元素。例如,如果输入是:

                                              I am here.

                                              They are there.

那么我希望我的应用程序能创建出以下列表=["我在这里。", "他们在那里。"]

2 个回答

0

使用 split 方法可以把输入的内容分成一个列表,然后用 str(text.get(1.0, END)) 来去掉前面的 unicode "u" 字符。

def full_function():
    options = str(text.get(1.0, END))
    lines = options.strip().split("\n")
    print lines
['I am here.', 'They are there.']
1

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这种时候,我们可以去一些技术论坛,比如StackOverflow,去寻找解决办法或者向其他人提问。

在这些论坛上,很多人会分享他们的经验和解决方案。你可以看到其他人遇到的类似问题,以及他们是如何解决的。这就像一个大家一起讨论和解决问题的地方。

如果你在论坛上提问,记得描述清楚你的问题,包括你遇到的错误信息和你尝试过的解决方法。这样其他人才能更好地帮助你。

总之,StackOverflow是一个很有用的资源,可以帮助你解决编程中的各种问题。

from Tkinter import *

#Below should pack to class
class MyWindow:
    def __init__(self, wname=""):
        self.root = Tk()
        self.root.title(wname)
        self.text = Text(self.root,font=("Purisa",12))
        self.text.pack()

        self.button=Button(self.root, text ="Button", command=self.prn)
        self.button.pack()
        self.root.mainloop()

    def get_words_list(self, widget):
        """Return list of words"""
        options=widget.get(1.0, END)# get lines into string
        #Remove spaces in list of lines
        return [i.strip() for i in options.splitlines()]

    def prn(self):
        """Testing get_words_list"""
        print self.get_words_list(self.text)

if __name__ == "__main__":
    w = MyWindow("My window")

撰写回答