如何获得可用的屏幕分辨率



我正在使用pygame在Mac上制作游戏。我正在尝试让我的窗口在不全屏的情况下填满屏幕。问题是,当我使用pygame.display.get_surface().get_size()(返回1366x768(时,底部Dock和Topbar的高度没有减去。我知道Dock的大小因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))

相关内容

  • 没有找到相关文章

最新更新