PyGTK:如何使图像自动缩放以适合其父窗口小部件?

2023-11-23

我有一个 PyGTK 应用程序需要加载未知大小的图像,但是我遇到的问题是,如果图像非常大或非常小,窗口布局会变得扭曲并且难以使用。我需要某种方法使图像自动缩放以适合其父窗口小部件。不幸的是,经过一些研究后,似乎没有内置或其他代码可以满足我的要求。

我怎样才能写一些东西来做到这一点?我本以为有人已经为此编写了一些代码;有什么我错过的吗?


您可以使用 widget.get_allocation() 找出父窗口小部件的大小,并使用 pixbuf.scale_simple 缩放图像,如下所示:

allocation = parent_widget.get_allocation()
desired_width = allocation.width
desired_height = allocation.height

pixbuf = gtk.gdk.pixbuf_new_from_file('your_image.png')
pixbuf = pixbuf.scale_simple(desired_width, desired_height, gtk.gdk.INTERP_BILINEAR)
image = gtk.image_new_from_pixbuf(pixbuf)

如果您希望每次调整窗口大小时图像都缩放,则必须将上面的代码(或类似的代码,以避免每次都从磁盘加载图像)放在连接到父窗口小部件的 size_allocate 信号的函数中。为了避免无限循环,请确保放入小部件中的图像不会再次改变其大小。

参考:

  • 如何调整图像大小(我想你已经访问过)
  • 关于“调整大小”事件
  • Stack Overflow 中有关调整大小的其他链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyGTK:如何使图像自动缩放以适合其父窗口小部件? 的相关文章

  • 如何在 AWS CDK 创建的 Python Lambda 函数中安装外部模块?

    我在 Cloud9 中使用 Python AWS CDK 并且我部署简单的 Lambda 函数那应该是发送 API 请求到 Atlassian 的 API当对象上传到 S3 存储桶时 也是由 CDK 创建的 这是我的 CDK 堆栈代码 fr
  • 如何正确地将 MIDI 刻度转换为毫秒?

    我正在尝试将 MIDI 刻度 增量时间转换为毫秒 并且已经找到了一些有用的资源 MIDI Delta 时间刻度到秒 http www lastrayofhope co uk 2009 12 23 midi delta time ticks
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • Pandas 中允许重复列

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

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • 默认情况下,Keras 自定义层参数是不可训练的吗?

    我在 Keras 中构建了一个简单的自定义层 并惊讶地发现参数默认情况下未设置为可训练 我可以通过显式设置可训练属性来使其工作 我无法通过查看文档或代码来解释为什么会这样 这是应该的样子还是我做错了什么导致默认情况下参数不可训练 代码 im
  • 当鼠标悬停在上面时,intellisense vscode 不显示参数或文档

    我正在尝试将整个工作流程从 Eclipse 和 Jupyter Notebook 迁移到 VS Code 我安装了 python 扩展 它应该带有 Intellisense 但它只是部分更糟糕 我在输入句点后收到建议 但当将鼠标悬停在其上方
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • 具有自定义值的 Django 管理外键下拉列表

    我有 3 个 Django 模型 class Test models Model pass class Page models Model test models ForeignKey Test class Question model M
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • 以编程方式选择一行 ag-grid + Angular 2

    尝试在 ag grid 中默认选择第一行 根据 ag grid 文档 我应该能够使用 NodeSelection Api https www ag grid com javascript grid selection framework a
  • 如何将数据从 ModalService 传递到组件中

    我正在尝试使用 ngx bootstrap modal 将数据从模态服务传递到模态组件 这examples显示这个 this modalService show ModalContentComponent initialState 但它没有
  • 将手册页输出重定向到文件会导致单词中出现双字母

    我重定向了输出man djpeg到一个文本文件中 以便我在学习使用它时可以参考它 我的指示是man djpeg gt textfile txt 但是 输出看起来像这样 LS 1 BSD General Commands Manual LS
  • “if constexpr”在模板之外有用吗?

    我试图理解if constexpr fully 我明白了 如果if constexpr expr 在模板中使用 以及expr依赖于模板参数 那么在实例化期间 只有其中之一then else分支将被实例化 其他分支将被丢弃 我有两个问题 是真
  • 如何在客户端运行程序或批处理文件?

    如何在客户端运行批处理文件 一个exe文件 只是为了在客户端打开预装程序吗 Edit 关于ActiveX 我尝试过 var activeXObj new ActiveXObject Shell Application activeXObj
  • 如何制作iPhone和iPad版本的应用程序?

    我正在尝试制作一个可以在 iPhone 和 iPad 上运行的应用程序 我正在寻找如何使接口在两者上兼容 当应用程序加载时 我将显示一个表格视图 如何根据设备加载不同的笔尖 我用它来切换笔尖 if UIDevice currentDevic
  • 修改 DAL 时出错,System.ArgumentException,“具有相同键的条目已存在”

    好吧 我完全被这个问题难住了 我可能没有足够的信息可以在这里发布 但我什至不知道从哪里开始寻找 我正在尝试在我的 DAL edmx 文件上 从数据库更新模型 我在视图中添加了一个先前未包含的字段 我尝试刷新 然后尝试重命名数据库中的视图并从
  • 在 foreach 循环中创建许多 DropDownListFor [重复]

    这个问题在这里已经有答案了 我想从列表中动态创建 DropDownList 该列表提供 SelectList 和保存选择的字段 public class ViewModel public List
  • Nest.JS 部署到 Heroku

    我目前正在尝试部署由 Nest JS CLI 自版本 5 3 0 起 生成的基本入门模板 并且似乎在应用程序启动时超时 我想知道是否有人成功部署到 Heroku 我不确定是否需要包含某种 Procfile 另外 似乎没有太多关于部署 Nes
  • 检测换行符的类型

    JavaScript 中确定文本中使用的换行符类型的最有效 足够快且足够可靠 的方法是什么 Unix 与 Windows 在我的 Node 应用程序中 我必须读取大型 utf 8 文本文件 然后根据它们是使用 Unix 还是 Windows
  • 如何让猫开始新的一行

    我有四个文件 one file txt abc def 两个文件 txt ghi jkl 三文件 txt mno pqr 四 WORD txt xyz xyz 我想连接所有以 file txt 结尾的文件 即除 four WORD txt
  • BreezeJS 的 1.4.1isolateES5Props 在 IE 8 中导致堆栈空间错误

    使用 BreezeJS 1 4 1 我们发现添加到 Isolate ES5 Properties 中的一些新代码导致 IE 8 出现以下错误 获取元数据时出错 微风 微风 元数据的元数据导入失败 无法处理返回的元数据 对象不支持属性或方法
  • C#泛型中的继承问题

    我有两个接口 public interface A void aMethod public interface B A void bMethod 后来我基本上使用这样的字典 Dictionary
  • 使用自动生成的 Classendpoint 插入方法插入实体时抛出 NullpointerException

    我对使用自动生成的端点类感到困惑 我想使用生成的端点将新对象插入数据存储区 但是 抛出异常 fooEndpoint insertFoo foo throws null pointer exception 我的实体类与此源中给定的示例类似 h
  • C# 中的 PKCS5Padding

    我需要使用 DESede pkcs5 填充来加密字符串 但是 C 仅提供 PKCS7 填充 那么我怎样才能实现这一目标呢 我对此事没有权威 但快速谷歌发现了这一点 http social msdn microsoft com Forums
  • 初始化和销毁​​Python多处理工作者

    我有一个模型 我从 Python 中调用了很多次 该模型的启动和关闭时间较长 但处理输入数据的时间很短 可以在启动 关闭之间多次完成 多处理 Pool 似乎是完成此任务的好方法 但我无法正确销毁 Model 类 下面给出了程序代码的简化结构
  • 为我的应用程序的文档类型注册图标

    我正在尝试为我的应用程序的文档类型注册一个图标 看完之后声明新的统一类型标识符并看着 Developer Examples Sketch我在我的作品中想出了这样的东西Info plist
  • 为什么要检查这个!= null?

    有时 我喜欢花一些时间查看 NET 代码 只是为了了解幕后是如何实现的 我在查看时偶然发现了这颗宝石String Equals通过反射器的方法 C ReliabilityContract Consistency WillNotCorrupt
  • 如何在 PostgreSQL 中按类别选择具有最大日期组的 id?

    例如 我想按类别选择最大日期组的 id 结果是 7 2 6 id category date 1 a 2013 01 01 2 b 2013 01 03 3 c 2013 01 02 4 a 2013 01 02 5 b 2013 01 0
  • PyGTK:如何使图像自动缩放以适合其父窗口小部件?

    我有一个 PyGTK 应用程序需要加载未知大小的图像 但是我遇到的问题是 如果图像非常大或非常小 窗口布局会变得扭曲并且难以使用 我需要某种方法使图像自动缩放以适合其父窗口小部件 不幸的是 经过一些研究后 似乎没有内置或其他代码可以满足我的