Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取ScrolledText的内容?_Python_Tkinter - Fatal编程技术网

Python 如何获取ScrolledText的内容?

Python 如何获取ScrolledText的内容?,python,tkinter,Python,Tkinter,我正在尝试获取滚动文本的内容,但到目前为止还没有成功:) 我不明白我错在哪里。 这里有一个非常简单的不工作代码示例 from Tkinter import Tk from ScrolledText import ScrolledText def returnPressed(value): print "CONTENT: " + value root = Tk() st = ScrolledText(root) st.bind("<Return>", lambda ev

我正在尝试获取滚动文本的内容,但到目前为止还没有成功:) 我不明白我错在哪里。 这里有一个非常简单的不工作代码示例

from Tkinter import Tk
from ScrolledText import ScrolledText


def returnPressed(value):
    print "CONTENT: " + value


root = Tk()
st = ScrolledText(root)
st.bind("<Return>", lambda event, i=st.get("1.0", "end-1c"): returnPressed(i))
st.insert("insert", "TEST")
st.pack()
root.mainloop()
从Tkinter导入Tk
从ScrolledText导入ScrolledText
def返回按下(值):
打印“内容:”+值
root=Tk()
st=滚动文本(根)
st.bind(“”,lambda事件,i=st.get(“1.0”,“end-1c”):returnPressed(i))
st.插入(“插入”、“测试”)
圣帕克
root.mainloop()

好,这是因为lambda的定义。 通过这种方式,函数是用常量“i”值创建的,该值是函数声明时的值

通过重新编写lambda,它就工作了

st.bind("<Return>", lambda event: returnPressed(st.get("1.0", "end-1c")))
st.bind(“,lambda事件:returnPressed(st.get(“1.0”,“end-1c”))

好,这是因为lambda的定义。 通过这种方式,函数是用常量“i”值创建的,该值是函数声明时的值

通过重新编写lambda,它就工作了

st.bind("<Return>", lambda event: returnPressed(st.get("1.0", "end-1c")))
st.bind(“,lambda事件:returnPressed(st.get(“1.0”,“end-1c”))

在创建按钮时,您将获得该值,这意味着该值将始终为空。您需要在处理事件时获取值

您应该避免使用lambda,这是一个稍微高级的概念,在这种情况下,它增加了复杂性,但没有增加任何价值。只需从函数中获取值:

def returnPressed(event):
    value = event.widget.get("1.0", "end-1c")
    print "CONTENT: " + value
...
st.bind("<Return>", returnPressed)
def returnPressed(事件):
value=event.widget.get(“1.0”、“end-1c”)
打印“内容:”+值
...
st.bind(“,按回车键)

在创建按钮时,您将获得该值,这意味着该值将始终为空。您需要在处理事件时获取值

您应该避免使用lambda,这是一个稍微高级的概念,在这种情况下,它增加了复杂性,但没有增加任何价值。只需从函数中获取值:

def returnPressed(event):
    value = event.widget.get("1.0", "end-1c")
    print "CONTENT: " + value
...
st.bind("<Return>", returnPressed)
def returnPressed(事件):
value=event.widget.get(“1.0”、“end-1c”)
打印“内容:”+值
...
st.bind(“,按回车键)

不是因为lambda定义:在计算函数声明时计算默认参数不是因为lambda定义:在计算函数声明时计算默认参数