【发布时间】:2016-08-03 18:54:01
【问题描述】:
大家好,我一直在学习 Tkinter 并制作了一些 GUI 应用程序。我正在尝试使用笔记本小部件,但我被困在一个地方。我想知道是否有一种方法可以对所有当前选项卡使用 for 循环并返回所有选项卡的文本名称而不是数字 id。我想用它来跟踪帧。我四处搜索并找到了如何显示当前选项卡的选项卡文本,但我需要所有选项卡。我还没有找到任何专门针对它的东西。让我知道你是否有想法。谢谢。
[编辑] 代码 sn-p
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()
【问题讨论】:
-
嗨,欢迎来到 StackOverflow。如果您向我们提供您已经尝试过的示例,或者提供有关您发现的确切内容的信息,则可以改进此问题。
-
这里的代码有点长。基本上我正在制作一个使用标签来发送私人消息的小聊天客户端。当一条私人消息到来时,我会查找发送它的人的姓名,并生成一个带有 2 个文本框的选项卡,一个用于输入,一个用于显示发送和接收的消息。我想做的是,当有消息进来时,查看用户名并让它通过一个 for 循环,如果有一个标签的文本是该名称的标签,则在那里发布传入的文本。我不知道这是否有意义。我可以尝试制作一些示例代码。
-
我添加了一个小代码sn-p。我希望这会有所帮助。
-
编辑不够好。请创建一个最小且完整的示例来说明这个问题——人们可以实际运行的东西。
标签: python python-3.x tkinter