如何使用Python/PyQT/Win32获取Windows任务栏的高度

2023-11-22

我试图让我的 GUI 程序与 Windows 屏幕的右下角对齐。当任务栏没有隐藏时,我的程序就会站在任务栏的顶部!

使用Python/PyQT/Win32时,我该如何:

  1. 检查任务栏的自动隐藏功能是否开启
  2. 获取任务栏的高度

As 大卫·赫弗南提到, 您可以使用GetMonitorInfo with pywin32检索显示器尺寸。特别是,工作区域将不包括任务栏的大小。

要获取工作区域大小(桌面减去任务栏):

from win32api import GetMonitorInfo, MonitorFromPoint

monitor_info = GetMonitorInfo(MonitorFromPoint((0,0)))
work_area = monitor_info.get("Work")
print("The work area size is {}x{}.".format(work_area[2], work_area[3]))

工作区域大小为 1366x728。

获取任务栏高度:

from win32api import GetMonitorInfo, MonitorFromPoint

monitor_info = GetMonitorInfo(MonitorFromPoint((0,0)))
monitor_area = monitor_info.get("Monitor")
work_area = monitor_info.get("Work")
print("The taskbar height is {}.".format(monitor_area[3]-work_area[3]))

任务栏高度为 40。

解释

首先,我们需要创建一个引用主监视器的句柄。主显示器左上角始终位于 0,0,所以我们可以使用:

primary_monitor = MonitorFromPoint((0,0))

我们检索有关显示器的信息GetMonitorInfo().

monitor_info = GetMonitorInfo(primary_monitor)
# {'Monitor': (0, 0, 1366, 768), 'Work': (0, 0, 1366, 728), 'Flags': 1, 'Device': '\\\\.\\DISPLAY1'}

监视器信息返回为dict。前两个条目将监视器大小和工作区域大小表示为元组(x 位置、y 位置、高度、宽度)。

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

如何使用Python/PyQT/Win32获取Windows任务栏的高度 的相关文章

  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 使用 OLS 回归预测未来值(Python、StatsModels、Pandas)

    我目前正在尝试在 Python 中实现 MLR 但不确定如何将我找到的系数应用于未来值 import pandas as pd import statsmodels formula api as sm import statsmodels
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 如何将 Hudson/Jenkins 参数传递给 Windows 批处理命令

    好吧 我需要在我的 Hudson 作业中执行一个批处理文件 我有一个参数 Jenkis 参数 我需要将这个值 如参数 传递给批处理文件 我尝试了以下操作 Deploy cmd configuration DEPLOYCONFIGURATIO
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • 创建嵌套字典单行

    您好 我有三个列表 我想使用一行创建一个三级嵌套字典 i e l1 a b l2 1 2 3 l3 d e 我想创建以下嵌套字典 nd a 1 d 0 e 0 2 d 0 e 0 3 d 0 e 0 b a 1 d 0 e 0 2 d 0
  • 使用 Firefox 绕过弹出窗口下载文件:Selenium Python

    我正在使用 selenium 和 python 来从中下载某些文件web page http www oceanenergyireland com testfacility corkharbour observations 我之前一直使用设
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f
  • 如何为 Windows toast 注册协议?

    如何注册 Windows toast 协议 样本中来自https blogs msdn microsoft com tiles and toasts 2015 07 02 adaptive and interactive toast not

随机推荐

  • 使用Qt的QLabel点击事件?

    我是 Qt 新手 有一个问题 I have QLabel and QLineEdit对象 并且当QLabel单击文本 我想将此文本设置为QLineEdit 我也读过QLabel没有点击信号 你能解释一下我该如何做到这一点并为我编写代码吗 要
  • EntityCollection Clear() 和 Remove() 方法

    删除 EF 实体的所有集合项的正确方法是什么 在下面的代码中 DocumentItems 是文档的相关文档项的集合 此代码在 Clear 上继续 但在 SaveChanges 上失败 因为相关项目通过 FK 连接到其文档 并且 FK 是强制
  • 如何查询 MongoDB 来测试某个项目是否存在?

    MongoDB 是否提供查找或查询方法来根据任何字段值测试某个项目是否存在 我们只想检查是否存在 而不是返回该项目的完整内容 由于您不需要计数 因此您应该确保查询在找到第一个匹配项后返回 自从计数性能不理想 这一点相当重要 以下查询应该可以
  • pandas 对象没有属性名称 Series

    import pandas as pd numbers 1 2 3 4 5 ser pd Series numbers print ser 我用 python 为 pandas 系列编写了这段代码 但它给了这个 属性错误 模块 对象没有属性
  • 使用OpenCV访问IP摄像头

    无法访问视频流 任何人都可以帮我获取视频流吗 我已经在谷歌中搜索了解决方案 并在堆栈溢出中发布了另一个问题 但不幸的是没有什么可以解决问题 import cv2 cap cv2 VideoCapture cap open http 192
  • Travis CI 测试具有相应环境变量集的分支

    我有一个项目正在尝试使用 Travis CI 自动化测试 我有一个 dev 分支和一个 test 分支 它们有不同的环境变量 例如 在 dev 分支上 我需要连接到由环境变量指定的与测试分支不同的 API 那么 当我在 Travis 上的
  • 不能抛出 DataAccessException 类型的异常;异常类型必须是 Throwable 的子类

    我的源代码如下 它有一个错误 不能引发 DataAccessException 类型的异常 异常类型必须是 Throwable 的子类 我不明白为什么会发生错误 让我知道 谢谢 package com sds afi cosmos cmm
  • 处理 PyLint 不一致返回语句的警告

    我正在某些代码上运行 PyLint 并收到警告 函数中的所有 return 语句都应该返回表达式 或者都不应该返回表达式 不一致的返回语句 这是我的代码 def determine operand count opcode form opc
  • 如何查看 Reader 是否处于 EOF?

    我的代码需要读入整个文件 目前我正在使用以下代码 BufferedReader r new BufferedReader new FileReader myFile while r ready String s r readLine do
  • 使用 StructureMap 进行单元测试

    我在 DI IOC 的 Web 项目中使用 StructureMap 它工作完美 但我不知道如何使用 StructureMap 编写单元测试 我应该像在 global asax 中那样在 AssemblyInitialize start S
  • UICollectionView 将手指拖动到单元格上以选择它们

    Using UICollectionView 是否可以通过将手指拖动到其中几个单元格上来选择多个单元格 例如 如果您将手指拖动到一行 6 上 然后向下拖动到下一行 它将选择所有这些 尝试了一些简单的事情 UISwipeGestureReco
  • Java VisualVM 在 OOME 上启用堆转储

    根据文档当应用程序遇到 OutOfMemoryException 时 可以自动进行堆转储 OutOfMemoryException 进程之后就从左侧菜单中消失 此功能在 VisualVM 中如何工作 Thanks C work temp g
  • DbSet.Cast() 错误:无法从非通用 DbSet 为“Entity”类型的对象创建 DbSet

    版本信息 我正在使用 C 4 5 Entity Framework 6 0 和 MEF 代码和单元测试 我创建了一个测试项目来解释这个问题 https skydrive live com redir resid E3C97EC293A340
  • 如何通过 HTTP 向受众发送 Firebase 通知

    在 Firebase 控制台中 我根据各种用户属性设置受众群体 现在可以通过控制台向不同的用户群体发送通知 有没有办法通过向 fcm 服务器发出 http 请求来执行相同的操作 to 字段应该有一个技巧 但我无法弄清楚 火力战士在这里 目前
  • AngularJS 中“getElementById”的替代方案

    检查这个PLNKR 我有一个带有 id 的列表myMenuList 这是一个加入script js显示Numer of li and UL width by scope mml angular element document getEle
  • JPA/hibernate 时间戳未保存在数据库/对象实体中

    我使用 javax persistence 作为我的实体对象 Mysql 作为数据库 我的实体对象有一个字段entryDate Column name ENTRYDATE private Date entryDate new Date 当我
  • 如何在Android Studio中将库导出到Jar?

    我已经下载了一些库源并想使用以下命令将其导出为 Jar 文件 安卓工作室 有没有办法使用 Android studio 导出到 jar 文件 edit 我想要导出为 jar 的库是一个 Android 库 它被称为 StandOut 可以从
  • UILabel 未更新

    抱歉这个基本问题 但这让我困扰了一段时间 我从 UITable 创建一个详细信息视图并尝试动态设置其标签 但它们没有更新 void tableView UITableView tableView didSelectRowAtIndexPat
  • 我应该将哪个数据库与 Node.js 一起使用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我应该将哪个数据库与 No
  • 如何使用Python/PyQT/Win32获取Windows任务栏的高度

    我试图让我的 GUI 程序与 Windows 屏幕的右下角对齐 当任务栏没有隐藏时 我的程序就会站在任务栏的顶部 使用Python PyQT Win32时 我该如何 检查任务栏的自动隐藏功能是否开启 获取任务栏的高度 As 大卫 赫弗南提到