在Tkinter的文本小部件中缺少`count`方法

时间:2015-11-18 15:57:26

标签: python-2.7 tkinter

我试图获取Tkinter Text小部件中显示的行数,并且我正在查看此问题:What's the most efficient way to get a Tkinter Text widget's total display lines after the insert?

我感兴趣的解决方案使用小部件的count方法,但在我的Python 2.7.10(Tk 8.5,Tcl 8.5)上,文本小部件没有该属性。

<td align="center"><a href="javascript:delete_id(some_id)"><img src="images/b_drop.png" alt="Delete" /></a></td>

产量

import Tkinter

root = Tkinter.Tk()
text = Tkinter.Text()
text.pack()

def test(event):
    print "displaylines:", text.count("1.0", "end", "displaylines")
    print "lines:", text.count("1.0", "end", "lines")

text.insert("1.0", "a" * 81)
text.insert("2.0", "b\n")
text.bind('<Map>', test)

root.mainloop()

从我发现的文件应该在那里;我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

这似乎是Tkinter中的一个错误。您可以使用monkeypatch添加缺少的方法:

def count_monkeypatch(self, index1, index2, *args):
    args = [self._w, "count"] + ["-" + arg for arg in args] + [index1, index2]

    result = self.tk.call(*args)
    return result

Tkinter.Text.count = count_monkeypatch