[英]How do I get the usable screen resolution?
我正在使用 pygame 在 Mac 上制作游戏。 我试图让我的 window 填满屏幕而不是全屏。 问题是当我使用pygame.display.get_surface().get_size()
(返回 1366x 768)时,底部的 Dock 和 Topbar 的高度没有被减去。 我知道 Dock 大小因 MacBook 和 MacBook 不同而不同,因为人们会更改它,我正在努力让我的游戏在所有同学的 MacBook 以及他们的 Windows 计算机上无缝运行。
我想获得不包括 Mac 上的 Dock/Topbar 和 windows 上的任务栏的屏幕尺寸。 我在此处链接的 Java 中看到了有关如何执行此操作的线程,但对于 Python,我似乎找不到任何相关信息。
假设您使用的是 tkinter,简单的解决方案是实现:
import Tkinter as tk
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master=master
pad=3
self._geom='200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
master.bind('<Escape>',self.toggle_geom)
def toggle_geom(self,event):
geom=self.master.winfo_geometry()
print(geom,self._geom)
self.master.geometry(self._geom)
self._geom=geom
root=tk.Tk()
app=FullScreenApp(root)
root.mainloop()
在填充屏幕时显示工具栏:
import tkinter as tk
class Fullscreen_Example:
def __init__(self):
self.window = tk.Tk()
self.fullScreenState = False
self.window.attributes("-fullscreen", self.fullScreenState)
self.w, self.h = self.window.winfo_screenwidth(), self.window.winfo_screenheight()
self.window.geometry("%dx%d" % (self.w, self.h))
self.window.bind("<F11>", self.toggleFullScreen)
self.window.bind("<Escape>", self.quitFullScreen)
self.window.mainloop()
def toggleFullScreen(self, event):
self.fullScreenState = not self.fullScreenState
self.window.attributes("-fullscreen", self.fullScreenState)
def quitFullScreen(self, event):
self.fullScreenState = False
self.window.attributes("-fullscreen", self.fullScreenState)
if __name__ == '__main__':
app = Fullscreen_Example()
太好了,只需复制我提供的代码即可:如果您尝试检索代表屏幕大小的变量,只需:
from win32api import GetSystemMetrics
print("Width =", GetSystemMetrics(0))
print("Height =", GetSystemMetrics(1))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.