Dav*_*vid 7 python tkinter gettext
我是tkinterpython 模块的新手。我尝试做一个项目。我学到了一些关于菜单的新知识,我正在尝试制作一个小的 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()
Run Code Online (Sandbox Code Playgroud)
问题是,正如我已经说过的,我不知道如何tkinter.scrolledtext.ScrolledText从小部件中获取文本。
因此,出于好奇,我尝试了此处描述的内容(与我对 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()
Run Code Online (Sandbox Code Playgroud)
我在ScrolledText小部件底部添加了一个保存按钮。小部件内容保存在该区output.txt域内。
help(ScrolledText)表明它是小tkinter.Text部件的子类,这显然意味着从中获取文本的方式与使用“文本小部件索引”的方法相同的 \xe2\x80\x94 get()(这里有一些关于它们的文档) 。
下面是一个获取小部件中所有文本的示例(我添加了一个Save text Button来测试该save()方法):
import sys\nimport tkinter as tk\nfrom tkinter.scrolledtext import ScrolledText\n\nclass SaveProject:\n def __init__(self, master):\n self.master = master\n self.textFrame = ScrolledText(self.master, width=100, bd=10, relief="raised")\n self.textFrame.pack()\n # Added for testing.\n self.save_btn = tk.Button(self.master, text=\'Save text\', command=self.save)\n self.save_btn.pack()\n\n def save(self):\n self.saveText = self.textFrame.get(\'1.0\', tk.END) # Get all text in widget.\n print(\'self.saveText:\', self.saveText)\n\nroot = tk.Tk()\nproject = SaveProject(root)\nroot.mainloop()\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
9378 次 |
| 最近记录: |