我有一个功能
的按钮def callback2():
callback()
callback()
功能
def callback():
usein = None
if inspect.stack()[1][3] == callback2:
global inputText
usein = inputText.get()
return None
while True: #freezes everything, because tkinter
if usein:
return usein
现在,我必须这样做的原因是因为其他函数调用callback()
寻找按钮输入的值,但是我必须让它们等待按下按钮。但由于我使用tkinter,while循环不起作用 - 它只会使GUI冻结。那么我可以使用什么呢?我已经做了好几天了。如果需要,我很乐意添加代码的任何其他部分。
答案 0 :(得分:1)
isButtonClicked = false #a global variable
def callback2():
isButtonClicked = true
callback()
isButtonClicked = false
一个想法可能是使用名为isButtonClicked的全局变量并赋值false,并修改调用回调方法的其他方法,如下所示:
def othermethod():
if isButtonClicked:
callback()
但是你要确保变量是线程安全的。
答案 1 :(得分:1)
不是tkinter专家,但如果您想在点击按钮上获得一些文字输入,则以下内容可能会有效。
def callback():
usein = entry.get()
# do whatever with usein
master = Tk()
entry = Entry(master) # the text input
Button(master, text='Button', command=callback)