从 ttk.Notebook 获取文本内容
Get the Text content from a ttk.Notebook
我正在尝试从 ttk.Notebook 访问文本内容。
我阅读了未知数量的文本文件 (<20),并为每个 .txt 文件创建了一个新选项卡。
并将 .txt 的内容添加到每个选项卡的文本小部件。
os.chdir('C://Users//Public//Documents')
myNotes = glob.glob('*.txt')
myNotes.append('+')
self.notebook = ttk.Notebook(self.master)
for files in myNotes:
if files != '+':
with open('C://Users//Public//Documents//'+files,'r') as f:
value = f.read()
else:
value=''
self.notebookTab = ttk.Frame(self.notebook)
self.notebook.add(self.notebookTab, text=files)
self.text = Text(self.notebookTab, bd=0, wrap='word')
self.text.pack(fill='both', expand=True)
self.text.insert('1.0', value)
self.notebook.pack(fill='both', expand=True)
我可以通过以下方式获取活动选项卡的名称(例如文本文件的名称):
activeTabName = self.notebook.tab(self.notebook.select(), "text")
但我不知道如何获取与活动选项卡关联的文本小部件的文本。
我想完成的是能够修改一个或多个文本文件的内容,并将新内容保存到正确的 .txt 文件中。
有人有什么想法吗?
我找到了实现我想做的事情的方法。
我将文本小部件保存在列表中。然后从选项卡中获取索引并从我的列表中获取该索引。例如:
self.textLista = []
...
self.textLista.append(self.text)
...
activeTabNo = self.notebook.index("current")
self.textLista[activeTabNo].get('1.0', END+'-1c'))
这可能不是一个好方法,但至少对我的目的有用。
我正在尝试从 ttk.Notebook 访问文本内容。
我阅读了未知数量的文本文件 (<20),并为每个 .txt 文件创建了一个新选项卡。 并将 .txt 的内容添加到每个选项卡的文本小部件。
os.chdir('C://Users//Public//Documents')
myNotes = glob.glob('*.txt')
myNotes.append('+')
self.notebook = ttk.Notebook(self.master)
for files in myNotes:
if files != '+':
with open('C://Users//Public//Documents//'+files,'r') as f:
value = f.read()
else:
value=''
self.notebookTab = ttk.Frame(self.notebook)
self.notebook.add(self.notebookTab, text=files)
self.text = Text(self.notebookTab, bd=0, wrap='word')
self.text.pack(fill='both', expand=True)
self.text.insert('1.0', value)
self.notebook.pack(fill='both', expand=True)
我可以通过以下方式获取活动选项卡的名称(例如文本文件的名称):
activeTabName = self.notebook.tab(self.notebook.select(), "text")
但我不知道如何获取与活动选项卡关联的文本小部件的文本。 我想完成的是能够修改一个或多个文本文件的内容,并将新内容保存到正确的 .txt 文件中。
有人有什么想法吗?
我找到了实现我想做的事情的方法。
我将文本小部件保存在列表中。然后从选项卡中获取索引并从我的列表中获取该索引。例如:
self.textLista = []
...
self.textLista.append(self.text)
...
activeTabNo = self.notebook.index("current")
self.textLista[activeTabNo].get('1.0', END+'-1c'))
这可能不是一个好方法,但至少对我的目的有用。