如何获取 pygtk 窗口的大小?

2023-12-14

我正在尝试使用 gtk.window.get_size(),但它总是只返回默认的宽度和高度。文档说

get_size() 方法返回一个包含当前宽度和 窗户的高度。如果窗口不在屏幕上,则返回 PyGTK 将向窗口管理器建议初始窗口的大小 尺寸。 get_size()方法获取的大小为最后一个大小 在配置事件中收到,即 PyGTK 使用其本地存储的 大小,而不是向 X 服务器查询大小。结果,如果 您调用 resize() 方法,然后立即调用 get_size() 方法,尺寸还没有生效。窗口管理器之后 处理调整大小请求,PyGTK 收到通知 大小已通过配置事件更改,并且窗口的大小 得到更新。

我尝试手动调整窗口大小并等待一分钟左右,但我仍然得到默认的宽度和高度。

我试图用它来保存退出时的窗口大小,以便我可以在启动时恢复它。有一个更好的方法吗?

这是我主要退出的代码片段。

def on_main_window_destroy(self, widget, data=None):
    if self.view.current_view.layout == 'list':
        self.view.current_view.set_column_order()

    width = self.main_window.get_size()[0]
    height = self.main_window.get_size()[1]
    #test statement
    print (width, height)

    self.prefs.set_size_prefs(width, height)
    self.prefs.set_view_prefs(self.view.current_view.media, self.view.current_view.layout)
    gtk.main_quit()

我想我明白现在发生了什么。这是在销毁信号内,因此当调用代码时,窗口已经消失了。是否有更规范的方法来处理窗口大小调整?我希望避免每次用户调整窗口大小时处理调整大小事件。


这似乎可以解决您的问题:

import gtk

def print_size(widget, data=None):
    print window.get_size()

def delete_event(widget, data=None):
    print window.get_size()
    return False

def destroy(widget, data=None):
    gtk.main_quit()

window = gtk.Window()
window.connect('delete_event', delete_event)
window.connect('destroy', destroy)

button = gtk.Button(label='Print size')
button.connect('clicked', print_size)
window.add(button)

window.show_all()

gtk.main()

我认为关键是打电话get_size on the delete_event信号而不是destroy信号。如果您在destroy信号,就像你所描述的那样,它只是返回默认大小。

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

如何获取 pygtk 窗口的大小? 的相关文章

  • 在 Python 中解析 TCL 列表

    我需要在双括号上拆分以空格分隔的 TCL 列表 例如 OUTPUT 172 25 50 10 01 01 Ethernet 172 25 50 10 01 02 Ethernet Traffic Item 1 172 25 50 10 01
  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关
  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • Pandas set_levels,如何避免标签排序?

    我使用时遇到问题set levels多索引 from io import StringIO txt Name Height Age Metres A 1 25 B 95 1 df pd read csv StringIO txt heade
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • Django Rest Framework 是否有第三方应用程序来自动生成 swagger.yaml 文件?

    我有大量的 API 端点编写在django rest framework并且不断增加和更新 如何创建和维护最新的 API 文档 我当前的版本是 Create swagger yaml文件并以某种方式在每次端点更改时自动生成 然后使用此文件作
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • WinForms 光标仅在一个窗体上隐藏

    我有一个 C 应用程序 有 2 个同时可见的表单 当鼠标光标仅位于其中一个表单上时 我需要隐藏鼠标光标 如果我使用 Cursor Hide 它会对它们应用更改 您需要使用以下方法来实现此逻辑MouseEnter and MouseLeave
  • 无法使用 @ContextConfiguration(classes={ ... }) 加载 ApplicationContext

    我正在尝试使用 Java 和注释配置运行一些 spring 测试 我的测试包中有两个配置类 Configuration ComponentScan basePackages com mypackages public class TestC
  • 在Qt中使用QRubberBand裁剪图像

    我希望能够使用橡皮筋选择图像的区域 然后删除橡皮筋之外的图像部分并显示新图像 然而 当我目前这样做时 它不会裁剪正确的区域并给我提供错误的图像 include mainresizewindow h include ui mainresize
  • 使用 WPF 进行透视变换

    WPF 允许在图形对象上指定线性仿射变换 有了它 您可以进行平移 旋转 缩放 倾斜或它们的组合 您可以指定 2x3 矩阵 我想做的是 2D 空间中的透视变换 这需要 3x3 矩阵 并且从 Photoshop 或 GIMP 中得知 您可以在其
  • D3 库 — 本示例中如何从 JSON 访问数据

    我没有在标题中正确解释这个问题 抱歉 我正在关注 D3 标签云简单示例https github com jasondavies d3 cloud blob master examples simple html 我有一个 JSON 文件 其
  • 阻止 JSON.parse() 从 json 字符串数据中删除尾随零

    我创建了一个 JSON 字符串 如下所示
  • pthread 和 semaphore 在 osx maverick 10.9 中不适用于我

    我有以下涉及 pthread 和信号量的简单程序 我使用的是 os x Maverick 10 9 我使用 makefile 来编译程序 而不是 xcode 我使用c 11 include
  • 只需检查多个语句 C#

    目前正在开发一款小型主机游戏 想知道是否有人有一种简单的方法来缩短这样的内容 if map playerX 1 playerY R1 map playerX 1 playerY R2 map playerX 1 playerY R3 map
  • 如何在 SQL Server 中使用 NOT IN 创建过滤索引

    我想创建唯一的非聚集索引 它限制特定列的某些记录 我使用 NOT IN 来过滤它 但由于 NOT IN 我收到错误 有什么替代方法可以做到这一点 CREATE UNIQUE NONCLUSTERED INDEX UN Student ON
  • rabbitmq中预取计数与无ack有什么区别

    我需要知道rabbitmq中预取计数与无ack之间有什么区别 还 以下陈述有什么区别 如果我设置预取计数为 10 是否会创建 10 个消费者线程 或者 如果我注册 10 个消费者 它会创建 10 个线程吗 以上哪种方式效率更高 专门针对 s
  • SVN for Emacs:如何设置作者姓名和保存密码?

    我似乎无法在谷歌任何地方找到这个 我正在尝试从 eclipse 迁移到 emacs 但我一生都无法弄清楚如何设置我的 svn 作者姓名 这样它就不会默认作者姓名或保存密码 这样我就不必输入它在任何一次 如果这很重要的话 我是 Ubuntu
  • 如何通过cleartool命令将文件夹中的所有文件添加到源代码管理中?

    我有一个文件夹 其中有很多文件和子文件夹 通过 UI 将其添加到源代码管理会消耗很多时间 如何使用cleartool将所有文件 包括子文件夹内的文件 添加到源代码管理 我使用的是clearcase UCM 正如 如何使用 ClearCase
  • 如何使用 JMeter 中的正则表达式提取器提取某些值?

    如果我有两个相同的标签和相同的属性 唯一的区别是值 我如何提取第二个
  • 网络聊天是否有“重置”按钮?

    开箱即用的网络聊天默认按钮集是 发送 按钮和 上传文件 按钮 网络聊天是否有可用的 重置 按钮 可以结束当前对话并为同一用户从头开始新对话 是否需要打开一些配置或样式选项才能直观地看到 重置 按钮 聊天 对话历史记录需要保持完整 它不应该清
  • 验证 python passlib 生成的密码哈希值

    我需要验证使用 python 生成的密码哈希值passlib 我的目标是使用 passlibpbkdf2 sha512对所有用户密码进行哈希处理的方案 但是 由于我们后端的性质 我需要从 php 脚本 js 和 java 验证此密码 我还没
  • 在 C 中调用 GNU Octave 函数?

    我想使用矩阵代数和优化 我已经测试了不同的矩阵代数 C 和 C 库 但这些库的问题是它们不能像 GNU Octave 那样处理垃圾数据 C 和 C 中的垃圾数据会降低到 e 8 但在 GNU Octave 中 它将降低到 e 17 如果您计
  • Razor 类库也可以打包静态文件(js、css 等)吗?

    Maybe 与此重复已经 但由于该帖子没有任何答案 我发布这个问题 The new 剃刀类库很棒 但它不能打包库文件 如 jQuery 共享 CSS 我能否以某种方式在多个 Razor 页面项目中重用 CSS 无论是使用 Razor 类库还
  • Android 可以替代 jtable 吗?

    android 3 x sdk 11 或更高版本 是否有类似于 jtable 对象的小部件 我不是从头开始开发一个小部件 使用 gridview 或 tablelayout 而是寻找一个随时可用的小部件 TIA Bob 更新 我发现了这篇优
  • iPhone sdk调用拦截

    我们正在开发一个应用程序 该应用程序的功能是 当我们自动接到电话时 我们必须通过短信 语音消息回复 那么 您能告诉我们在iPhone中是否可以实现 如果意味着指导我们构建该应用程序 提前致谢 布莱特 拉吉 目前的SDK无法以这种方式访问 手
  • 如何获取 pygtk 窗口的大小?

    我正在尝试使用 gtk window get size 但它总是只返回默认的宽度和高度 文档说 get size 方法返回一个包含当前宽度和 窗户的高度 如果窗口不在屏幕上 则返回 PyGTK 将向窗口管理器建议初始窗口的大小 尺寸 get