我正在使用 tkinter 撰寫一段代碼,如下所示:
def function_call():
x = 5;
for _ in range (10):
...
...
...
//pause here until F9 is pressed
root = tk.Tk()
...
...
...
root.bind('<F1>', lambda event: function_call()) //Using F1 to invoke call
有誰知道如何暫停回圈,直到按下 F9?請幫忙。
uj5u.com熱心網友回復:
tkinter 具有.wait_variable(var)暫停應用程式并等待 tkintervar更新的功能。所以你可以系結鍵<F9>來更新 tkinter 變數以停止等待:
import tkinter as tk
def function_call(event=None):
for i in range(10):
print('Hello', i)
# wait for pause_var to be updated
root.wait_variable(pause_var)
print('done')
root = tk.Tk()
# tkinter variable for .wait_variable()
pause_var = tk.StringVar()
root.bind('<F1>', function_call)
# press <F9> to update the tkinter variable
root.bind('<F9>', lambda e: pause_var.set(1))
root.mainloop()
請注意,如果 for 回圈內的作業很耗時,那么最好function_call()在子執行緒中運行。
uj5u.com熱心網友回復:
這是您可以構建的一些代碼。它將等到“F9”鍵被按下,按下時它會改變文本。
import tkinter as tk
from tkinter import Label
root = tk.Tk()
root.geometry("300x300")
state = 'startup'
def loop():
if state == 'startup':
Label(text="The Game is starting now!").grid(row=0, column=0)
elif state == 'running':
Label(text="The Game is running now!").grid(row=0, column=0)
root.after(20, loop)
def key(event):
global state
if state == 'startup':
state = 'running'
root.bind('<Key-F9>', key)
root.after(20, loop)
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/370472.html
上一篇:什么都不會附加到框架
下一篇:我怎樣才能把它變成一個按鈕?
