Python,Tkinter:如何将函数的输出重定向到笔记本选项卡?

时间:2013-03-08 16:23:39

标签: python tkinter

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

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

如果这是一个简单的问题,我很抱歉,但我真的很难过,我无法在网上找到任何有用的资料来帮助我。

提前致谢

我正在使用python 3.3

2 个答案:

答案 0 :(得分:2)

Insert函数的工作方式几乎相同,唯一的区别是它取一个字符串占用一帧。 Add更简单,你不需要指定一个索引,只是将它添加到最后。您需要做的就是创建一个框架,将Text元素打包到其中,然后将整个内容打包到笔记本中。它看起来像这样

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

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

答案 1 :(得分: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()

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

相关问题