【问题标题】:tkinter - screen width and height of secondary display?tkinter - 辅助显示器的屏幕宽度和高度?
【发布时间】:2013-07-18 11:50:41
【问题描述】:

我设置了双显示器(笔记本电脑屏幕和外接显示器)。我的笔记本电脑屏幕是我的主要显示器,外接显示器是次要的。两者都有不同的屏幕尺寸。

在我的python tkinter 脚本中,我使用winfo_screenwidth()winfo_screenheight() 来检测屏幕宽度和高度,以便我可以将根窗口设置为全屏。

通常,当我运行我的脚本时,根窗口将是我笔记本电脑屏幕的大小。当我将窗口移动到扩展显示器时,我希望它自动调整宽度和高度以匹配外部显示器的宽度和高度。

这可能吗?有什么方法可以检查根窗口是主显示还是副显示?

winfo_screenwidth() 是否检测辅助显示器的宽度和高度?

编辑:我使用的是 Windows XP Pro 32 位和 Python 2.7。

【问题讨论】:

  • 只是我的意见,但我认为调整窗口大小应该由用户决定。只需单击鼠标即可使窗口全屏显示,为什么要强制呢?
  • @tobias_k 抱歉,我忘了提到我正在使用我的自定义窗口并使用root.overrideredirect(1) 禁用了正常窗口样式,所以我目前没有默认的最大化按钮。
  • 这里有很多答案:stackoverflow.com/questions/3129322/…

标签: python tkinter multiple-monitors


【解决方案1】:

我是怎么做到的:

t = Tk() # new window
t.update()
t.attributes("-alpha", 00)
t.state('zoomed') # maximize the window
height= t.winfo_height() # ...
width= t.winfo_width()

但遗憾的是,我不知道另一个屏幕的位置。 但我认为你可以做到这一点

  1. 创建一个新窗口
  2. 使用 winfo_screenheight() 和 winfo_screenwidth() 找出原始屏幕
  3. 使用 geometry() 移动窗口
  4. 最大化窗口(它应该总是在它所在的屏幕上最大化)
  5. 获取几何()
  6. 如果几何图形位于 (0, 0) 它是主屏幕,则继续执行 3。
  7. 你找到了另一个屏幕

【讨论】:

  • 您的意思是t.state('zoomed') 将在执行命令时最大化屏幕上出现的根窗口?比如,如果根窗口在主屏上,会根据主屏的宽高最大化,副屏也一样?
  • 没错。我知道这是在 Windows 下应该发生的事情。我不能代表其他窗口管理器。也许你可以试试看它是否有效。
猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2010-11-25
  • 2015-09-10
  • 2021-10-25
相关资源
最近更新 更多