我是tkinter
python模块的新手。我尝试做一个项目。我学到了一些有关菜单的新知识,我试图做一个小的UI项目,允许用户在滚动的文本小部件中编写一些内容,然后保存(使用sys
模块)。
我已经尝试了一些在按钮上起作用的东西。例如.get()
,但没有用。我还尝试了["text"]
方法。
import tkinter, sys
root = tkinter.Tk()
class saveProject:
def __init__(self, master):
self.master = master
self.textFrame = tkinter.scrolledtext.ScrolledText(self.master, width=100, bd=10, relief="raised")
self.textFrame.pack()
def save(self):
#self.saveText = self.textFrame.get()
self.saveText = self.textFrame["text"]
project = saveProject(root)
root.mainloop()
问题是,正如我已经说过的,我不知道如何从tkinter.scrolledtext.ScrolledText
小部件中提取文本。
答案 0 :(得分:0)
因此,出于好奇,我尝试了描述here的内容(与OP问题的评论相同的链接)。它也适用于scrolledtext
。
import tkinter, sys
from tkinter import scrolledtext
root = tkinter.Tk()
class saveProject:
def __init__(self, master):
self.master = master
self.textFrame = scrolledtext.ScrolledText(self.master, width=100, bd=10, relief="raised")
self.textFrame.pack()
self.saveb = tkinter.Button(self.master, text="Save", command= lambda : self.save())
self.saveb.pack()
def save(self):
cur_inp = self.textFrame.get("1.0", tkinter.END)
fl = open("output.txt", "w")
fl.write(cur_inp)
project = saveProject(root)
root.mainloop()
我在ScrolledText
小部件的底部添加了一个保存按钮。小部件内容保存在output.txt
区域内。
答案 1 :(得分:0)
help(ScrolledText)
表示它是tkinter.Text
小部件的子类,这显然意味着使用get()
方法和索引从文本中获取文本的方式是相同的(这里有一些{ {3}}关于Text
小部件索引。
以下是获取小部件中所有文本的示例(我添加了保存文本 Button
以测试save()
方法):
import sys
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
class SaveProject:
def __init__(self, master):
self.master = master
self.textFrame = ScrolledText(self.master, width=100, bd=10, relief="raised")
self.textFrame.pack()
# Added for testing.
self.save_btn = tk.Button(self.master, text='Save text', command=self.save)
self.save_btn.pack()
def save(self):
self.saveText = self.textFrame.get('1.0', tk.END) # Get all text in widget.
print('self.saveText:', self.saveText)
root = tk.Tk()
project = SaveProject(root)
root.mainloop()