1

我想知道是否可以将函数的输出重定向到 ttk 笔记本小部件中的选项卡。

我认为它类似于您刚刚使用的列表框小部件,listbox.insert但我无法让它工作。

如果这是一个简单的问题,我深表歉意,但它真的难倒我,我无法在网上找到任何有用的材料来帮助我。

提前致谢

我使用python 3.3

4

2 回答 2

2

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' )

然后,您应该能够直接更改文本框中的文本。

于 2013-03-08T16:42:11.197 回答
1

在某种程度上取决于您用作选项卡的小部件类型,但基本上它不应该有很大不同。只需跟踪您的选项卡小部件并调用适当的方法。

带有两个文本选项卡的示例:

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()

点击“添加文字!” 按钮将一些文本附加到第一个选项卡。

于 2013-03-08T16:39:52.107 回答