微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用mac让pygame窗口出现在最前面

如何解决如何用mac让pygame窗口出现在最前面

我为《我的世界》制作了一个游戏计时器,可在快速运行时使用,效果很好,但一个问题是,当我让《我的世界》填满整个屏幕而不是全屏时,只需将其覆盖,计时器就会消失。

我知道这会发生,我想知道这是否可以修复并使 pygame 窗口位于最前面,即使它被您当前使用的应用程序阻止。

解决方法

您可以使用 Tkinter 执行此操作:

这样,你可以制作一个计时器:

  1. 始终放在首位
  2. 透明

此外,tkinter 在标准库中。

您可以使用此代码:

from tkinter import *
from threading import Thread
from time import time

tk = Tk()
tk.title('Timer')
tk.wm_attributes('-topmost',1) # put the window to front

pause = True
start = time()
time_when_paused = time() # time displayed when in pause

def restart(): # restart to 0
    global pause,start
    pause = False
    start = time()

def toggle_pause():
    global pause,start,time_when_paused
    pause = not pause
    if pause:
        time_when_paused = time() # update the time displayed
    else:
        start += time() - time_when_paused # forget the time passed in pause

def timer():
    while True:
        if pause:
            label['text'] = '%.2f' %(time_when_paused - start) # %.2f for 2 decimals
            label['fg'] = 'orange'
        else:
            label['text'] = '%.2f' %(time() - start)
            label['fg'] = 'green'

label = Label(tk,'',font=('Helvetica',30),fg='orange')
label.grid(columnspan=2) # display the timer

# buttons
restart_button = Button(tk,text='Restart',width=20,command=restart)
restart_button.grid(padx=5,pady=5)
pause_button = Button(tk,text='Pause',command=toggle_pause)
pause_button.grid(padx=(0,5),column=1,row=1)

timer_thread = Thread(target=timer)
timer_thread.start() # put in a thread because of...

tk.mainloop() # ...this which acts like "while window is not closed"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。