繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM