我想知道是否可以将函数的输出重定向到 ttk 笔记本小部件中的选项卡。
我认为它类似于您刚刚使用的列表框小部件,listbox.insert
但我无法让它工作。
如果这是一个简单的问题,我深表歉意,但它真的难倒我,我无法在网上找到任何有用的材料来帮助我。
提前致谢
我使用python 3.3
Insert 函数的工作方式几乎相同,唯一的区别是使用帧而不是字符串。不过,添加要简单得多,您无需指定索引,只需将其添加到末尾即可。您需要做的就是创建一个框架,将一个文本元素打包到其中,然后将整个内容打包到笔记本中。它看起来像这样
noteb = ttk.Notebook( root, width=500, height=300 )
frame1 = tkinter.Frame( noteb )
textbox = tkinter.Text( frame1, put whatever you want to put here )
frame1.pack( expand=1, fill='both' )
noteb.add( frame1, whatever parameters you want )
noteb.pack( expand=1, fill='both' )
然后,您应该能够直接更改文本框中的文本。
在某种程度上取决于您用作选项卡的小部件类型,但基本上它不应该有很大不同。只需跟踪您的选项卡小部件并调用适当的方法。
带有两个文本选项卡的示例:
from Tkinter import *
from ttk import Notebook
def addText(tab):
tab.insert(END, "foo! ")
root = Tk()
nb = Notebook(root, height=240, width=480)
tabs = {"foo": [], "bar": []}
for tabname in tabs:
tab = Text(nb)
tabs[tabname] = tab
nb.add(tab, text= tabname)
nb.pack()
Button(root, text= "Add text!", command = lambda: addText(tabs["foo"])).pack()
root.mainloop()
点击“添加文字!” 按钮将一些文本附加到第一个选项卡。