如何获取Tkinter中的屏幕大小?

44 投票
3 回答
79271 浏览
提问于 2025-04-16 05:36

我想知道能不能用Tkinter来计算屏幕的大小。

我想这样做是为了让程序在屏幕中间打开……

3 个回答

3

对于Windows系统:

你可以让程序知道屏幕的 DPI(每英寸点数),这样它就能适应不同大小的显示屏。

import ctypes
try: # Windows 8.1 and later
    ctypes.windll.shcore.SetProcessDpiAwareness(2)
except Exception as e:
    pass
try: # Before Windows 8.1
    ctypes.windll.user32.SetProcessDPIAware()
except: # Windows 8 or before
    pass

进一步解释一下 mouad的回答,这个函数可以处理多个显示器,并且能返回当前屏幕的分辨率:

import tkinter
def get_display_size():
    root = tkinter.Tk()
    root.update_idletasks()
    root.attributes('-fullscreen', True)
    root.state('iconic')
    height = root.winfo_screenheight()
    width = root.winfo_screenwidth()
    root.destroy()
    return height, width
6

一个可能的解决办法

import os

os.system("xrandr  | grep \* | cut -d' ' -f4")

我的输出结果是:

1440x900
0
108

在编程中,有时候我们需要把一些代码放在特定的地方,这样它们才能正常工作。比如说,你可能会在一个函数里写代码,这个函数就像一个小工具,只有在你需要的时候才会被使用。

另外,有些时候我们会用到“变量”,它们就像是存储信息的盒子。你可以把数字、文字或者其他任何东西放进这些盒子里,然后在需要的时候再拿出来用。

还有一个概念是“循环”,这就像是重复做一件事情。比如说,如果你想让电脑数到10,你可以让它重复执行“加1”的操作,直到它数到10为止。

最后,记得在写代码的时候,要保持代码的整洁和清晰,这样你自己和别人才能更容易理解你的代码。

import tkinter as tk

root = tk.Tk()

screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()

撰写回答