为什么select()返回一个空字符串?

时间:2016-01-02 20:34:35

标签: python string tkinter ttk

我正在用Python和Tkinter构建一个可扩展的文本编辑器,我决定使用ttk.Notebook小部件来支持一次打开进行编辑的多个文件。我继承了Notebook和(除其他外)覆盖其select函数,以便它总是返回一个tab索引而不是tab标识符。从理论上讲,这将使API更加一致。但是,当我在启动时调用未修改的select时,它返回一个空字符串,该字符串将传递给index,它不喜欢空字符串。

这是有问题的功能:

def select(self, tabid=None):
    if tabid is None:
        return self.index(super().select())
    return super().select(tabid)

我知道这不是由于super()的误用造成的,因为此测试代码也会出现错误:

import tkinter
import tkinter.ttk
root = tkinter.Tk()
foo = tkinter.ttk.Notebook(root)
bar = tkinter.Frame(foo)
foo.add(bar)
foo.pack(); bar.pack()
print(repr(foo.select())) # prints ''

我无法在select()可能返回空字符串的文档中找到任何案例。我错过了什么?

0 个答案:

没有答案