与双显示器一起使用时的 tkinter winfo_screenwidth()

2023-11-22

使用 tkinter canvas,要计算我显示的图形的大小,我通常使用该函数winfo_screenwidth(),并相应地调整我的对象的大小。 但当在具有两个显示器的系统上使用时,winfo_screenwidth()返回两个显示器的组合宽度——这会弄乱我的图形。 如何分别找出每个显示器的屏幕宽度(以像素为单位)?

我在各种 Linux 机器(Ubuntu 和 Mint)上使用多个版本的 Python 3.x 和多个版本的 tkinter(均为 8.5 或更高版本)时遇到过这个问题。

例如,第一个监视器的宽度为 1440 像素。第二个宽度为 1980 像素。winfo_screenwidth()返回 3360。

我需要找到一种方法来独立确定每个显示器的屏幕宽度。

Thanks!


这是一个老问题,但仍然是:对于跨平台解决方案,您可以尝试屏幕信息模块,并通过以下方式获取有关每个监视器的信息:

import screeninfo
screeninfo.get_monitors()

如果您需要知道您的窗口之一位于哪台显示器上,您可以使用:

def get_monitor_from_coord(x, y):
    monitors = screeninfo.get_monitors()

    for m in reversed(monitors):
        if m.x <= x <= m.width + m.x and m.y <= y <= m.height + m.y:
            return m
    return monitors[0]

# Get the screen which contains top
current_screen = get_monitor_from_coord(top.winfo_x(), top.winfo_y())

# Get the monitor's size
print current_screen.width, current_screen.height

(其中 top 是你的 Tk 根)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与双显示器一起使用时的 tkinter winfo_screenwidth() 的相关文章

  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 使用 Pycharm 在 Windows 下启动应用程序时出现 UnicodeDecodeError

    问题是当我尝试启动应用程序 app py 时 我收到以下错误 UnicodeDecodeError utf 8 编解码器无法解码位置 5 中的字节 0xb3 起始字节无效 整个文件app py coding utf 8 from flask
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 如何将交互式 matplotlib 图形插入 tkinter 画布

    我正在尝试将交互式 matplotlib 图形 具有滑块 重置按钮和单选按钮的图形 放入 tkinter Canvas 中 我已成功添加非交互式图表 但当它变为交互式时找不到问题 我尝试将所有内容更改为使用 matplotlib Figur
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql

随机推荐

  • ActiveRecord::StatementInvalid: PG::Error: 错误: 列“id”中的空值违反了非空约束

    我在我的应用程序中经常收到以下错误 如果我重新启动 Rails 应用程序 此错误将在一段时间内不会出现 导轨 3 1 3 红宝石 1 9 3 ActiveRecord StatementInvalid PG Error 错误 空值 列 id
  • Objective C 中的动态特性

    我发现 Objective C 对象属性可以标记为 dynamic让编译器知道实现将在运行时可用 我想知道是否有一种方法可以告诉编译器对象上的所有属性都是动态的 而无需逐一显式指定它们 我没有预先提供属性列表 我知道如果我只使用这不会成为问
  • Spring 的 @Autowired 是一个巨大的性能问题吗?

    我有一个项目 我不知道 200 300 daos 服务 控制器 我使用 Autowired将所有内容连接在一起 而不是指定中的所有内容applicationContext xml 我的问题是 这对我的启动时间有多大的性能影响 删除所有的是否
  • MERGE 表,匹配时不执行任何操作

    我有一张桌子DOMAINS在 2 个不同的列模式中ID NAME CODE DESCRIPTION For any NAME存在于新模式中 它应该使用现有的ID没有任何合并 对于那些新的NAME记录 它应该插入ID来自旧模式 MERGE I
  • 在 PHP 中跨服务器传输会话

    我需要跨服务器传输用户会话 IE 如果用户登录 server1 并且该用户存在于 server2 中 那么我必须将用户会话详细信息传输到 server2 为此 我使用了以下技术 从 server1 将用户重定向到http server2 a
  • 如何回收我的 SqliteCommand 以加速此 Sqlite 批量插入 (iOS)?

    我使用下面的代码批量插入 30000 行 一次 1000 行 但它仍然没有达到应有的速度 在这个例子中提高 SQLite 的每秒插入性能 我可以看到他们正在创建SqliteCommand仅一次 然后通过重置并清除绑定来回收它 但是 我在 i
  • FacesContext 的生命周期?

    在经历javadoc 的FacesContext 我看到这句话 该实例保持活动状态 直到调用其release 方法为止 之后不允许进一步引用该实例 当 FacesContext 实例处于活动状态时 除了执行此 Web 应用程序的 Servl
  • 在 URL 中传递用户名和密码以进行 HTTP 基本身份验证

    当传递 URL 中编码的用户名和密码时 例如 https 阿拉丁 电子邮件受保护 index html 客户端实际上是否在授权标头中发送了此信息 对于这种URL编码 服务器端需要进行怎样的处理呢 客户端实际上是否在授权标头中发送了此信息 这
  • RxJ 中“new Observable()”和“of()”有什么区别

    有什么区别new Observable and of in RxJs 在我的测试用例中 当我尝试返回时new Observable 它给了我一个有线错误 如果我将其替换为of 来自 Rxjs 它工作正常 我的印象是Observable cr
  • 跨项目的部分类

    是否可以跨项目进行部分类 例如项目 1 有一个客户类别 Project2 是一个可选模块 通过附加订单类并利用原始客户类来添加到客户类中 您不能使用partial关键字在项目之间拆分类的代码 这partial关键字是编译器技巧 编译器将从它
  • 在 VB.NET 的 List(Of String) 中查找重复项

    我有一个customers我试图在其中查找重复客户的列表 字符串 If Not customers Count customers Distinct ToList Count Then customers customers Except
  • 使用 JPA 标准通过标准构建器为 postgres jsonb 列构建谓词

    我需要将谓词添加到 JSONB 列的现有谓词列表中 Entity Entity Table name a TypeDefs TypeDef name jsonb typeClass JsonBinaryType class public c
  • NSData writeToFile:atomically: 不会立即保存文件

    我正在从网络下载 SQLite 数据库到我的 iPad 应用程序中 如果我将其写入磁盘设置atomically YES我无法立即使用它 因为即使文件在那里 sqlite 也会抱怨表不在那里 如果我使用atomically NO或者我延迟打开
  • 为仅可用作键盘快捷键的命令添加 Visual Studio 工具栏按钮

    这个问题与此相关ReSharper YouTrack 问题 在安装了 ReSharper 7 1 1 的 Visual Studio 2010 中 如果我转到 工具 gt 选项 gt 环境 gt 键盘 则会出现一个名为 ReSharper
  • Hive JDBC getConnection 不返回

    我正在关注 hive JDBC 教程 我无法让它工作 当它尝试获取连接时 它就会挂起 它也不报告任何错误 我确定 Hive 服务器正在运行 有什么帮助吗 public class HiveJdbcClient private static
  • 团队构建错误:路径...已映射到工作区

    在 Team Foundation Server 中创建新版本时 尝试运行新版本时出现以下错误 路径 C Build ProductReleases FullBuildv5 4 2x Sources 已经映射到工作区 构建服务器 23 我无
  • this.$emit 与 this.$root.$emit,vuejs 中的最佳实践

    我有 vue2 组件 可以使用以下命令添加和删除v if 在某些情况下 我在他们之间进行交流 emit来自发件人 以及 on在接收器中 我一直在使用this root emit广播自定义事件和this root on来处理事件 我发现使用t
  • 如何在JavaFX中为组布局添加背景颜色?

    我需要向 JavaFX 中的组添加背景颜色 我尝试用 CSS 添加它 但由于某种原因它不起作用 CSS 适用于所有其他布局管理器 但不适用于 Group 我该怎么办 Solution 替换您的使用Group with a Pane一切都会表
  • asp.net MVC 如何记住回发时的错误值?

    这是可行的 但是如何 我有一个帖子的控制器操作 AcceptVerbs HttpVerbs Post public ActionResult Edit Person person bool isvalid ModelState IsVali
  • 与双显示器一起使用时的 tkinter winfo_screenwidth()

    使用 tkinter canvas 要计算我显示的图形的大小 我通常使用该函数winfo screenwidth 并相应地调整我的对象的大小 但当在具有两个显示器的系统上使用时 winfo screenwidth 返回两个显示器的组合宽度