如何在不中断 tkinter 主循环的情况下运行一个函数,同时将该函数的信息发送到我的主循环中的小部件?
Posted
技术标签:
【中文标题】如何在不中断 tkinter 主循环的情况下运行一个函数,同时将该函数的信息发送到我的主循环中的小部件?【英文标题】:How can I run a function without interrupting my tkinter mainloop, but also send information from that function to widgets in my mainloop? 【发布时间】:2019-07-30 14:23:17 【问题描述】:抱歉,如果以前有人问过这个问题,但我找不到明确的答案。我正在编写一个 GUI 来从树莓派控制电机,它在触摸屏上。我编写了一些代码,当 Entry 小部件成为焦点时,它会打开内置的火柴盒键盘,但这会在后台停止我的整个 tkinter 窗口,这意味着用户在关闭之前无法看到他们输入的内容出现在 Entry 中键盘,而且当它挂在后台时,屏幕经常会撕裂并且看起来很糟糕。反正有没有运行这个命令:
def createNumpad(event=none):
os.system('matchbox-keyboard numpad')
以便在键盘打开时 tkinter 窗口不会冻结?谢谢!
【问题讨论】:
***.com/a/49307676/11703358;您可以通过在该小部件上绑定“entry.bind("<Enter>", self.on_focus)
和“这是来自 SO answer 的相关代码已更改为适合 Tkinter:
import subprocess
def createNumpad(event)
try:
subprocess.Popen(["matchbox-keyboard", "numpad"])
except FileNotFoundError:
pass
def deleteNumpad(event):
subprocess.Popen(["killall","matchbox-keyboard"])
#
entry.bind("<Enter>", createNumpad)
entry.bind("<Leave>", deleteNumpad)
【讨论】:
以上是关于如何在不中断 tkinter 主循环的情况下运行一个函数,同时将该函数的信息发送到我的主循环中的小部件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 tkinter 打开控制台窗口的情况下运行 Python 脚本?