大家好,我一直在学习 Tkinter 并制作一些 GUI 应用程序。我正在试验笔记本小部件,但被困在一个地方。我想知道是否有一种方法可以对所有当前选项卡使用 for 循环并返回所有选项卡的文本名称而不是数字 ID。我想用它来跟踪帧。我四处搜索并找到了如何显示当前选项卡的选项卡文本,但我需要所有选项卡。我一直无法找到任何专门用于此的东西。如果您有想法,请告诉我。谢谢。
[编辑] 代码片段
from tkinter import *
from tkinter import messagebox
from tkinter.scrolledtext import ScrolledText
from tkinter import ttk
class Window(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.master = master
self.init_window()
self.second_window()
self.pm_tabs = []
def init_window(self):# Builds the UI for the main window
self.n = ttk.Notebook(root)
self.get_tabs_button = Button(self.textboxframe,
width=20,
text='Get Tab Names',
command=lambda:self.get_tab_names())
self.get_tabs_button.grid(row = 0,
column= 1,
padx=(5,5),
pady=(5,150),
sticky=N+S+E+W)
self.n.add(self.textboxframe, text='Chat')
self.n.grid(row=0, column=0, sticky=N+S+E+W)
def second_window(self):# UI for second window
self.get_tabs_button = Button(self.textboxframe,
width=20,
text='Get Tab Names',
command=lambda:self.get_tab_names())
self.get_tabs_button.grid(row = 0,
column= 1,
padx=(5,5),
pady=(5,150),
sticky=N+S+E+W)
self.n.add(self.textboxframe, text='Second')
def get_tab_names(self): # get the names of the tabs. Hoping to get the text names of the tab.
for tabs in self.n.tabs():
print(tabs)
if __name__ == '__main__':
root = Tk()
app = Window(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
根据官方文档,notebook的tab方法可以返回一个tab的信息,比如tab上的文字。
因此,您可以获得所有选项卡的文本列表,如下所示:
notebook = ttk.Notebook(...)
...
tab_names = [notebook.tab(i, option="text") for i in notebook.tabs()]
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉列表推导式,上面的内容与此相同:
tab_names = []
for i in notebook.tabs():
tab_names.append(notebook.tab(i, "text"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2589 次 |
| 最近记录: |