在网上找到的各种其他方法的组合,这适用于OS X 10.11,以及在venv中运行的Python 3.5.1,也适用于其他平台 . 在OS X上,它还通过进程ID而不是应用程序名称来定位应用程序 .
from tkinter import Tk
import os
import subprocess
import platform
def raise_app(root: Tk):
root.attributes("-topmost", True)
if platform.system() == 'Darwin':
tmpl = 'tell application "System Events" to set frontmost of every process whose unix id is {} to true'
script = tmpl.format(os.getpid())
output = subprocess.check_call(['/usr/bin/osascript', '-e', script])
root.after(0, lambda: root.attributes("-topmost", False))
3 回答
这可能是您特定窗口管理器的一项功能 . 要尝试的一件事是您的应用程序在创建所有小部件后在启动时调用
focus_force
.你在脚本结束时试过这个吗?
在网上找到的各种其他方法的组合,这适用于OS X 10.11,以及在venv中运行的Python 3.5.1,也适用于其他平台 . 在OS X上,它还通过进程ID而不是应用程序名称来定位应用程序 .
你在
mainloop()
之前调用它,就像这样: