【问题标题】:Fitting image to window - GTKmm将图像拟合到窗口 - GTKmm
【发布时间】:2024-01-19 17:46:02
【问题描述】:

我正在使用 gtkmm 用 C++ 编写一个简单的照片查看器,但我无法解决一些问题。我想适合显示到窗口的图像。为此,我已将signal_configure_event 连接到我的拟合函数。这很好用,但现在我还有两个问题:

  1. 在最大化/最小化窗口时未发送信号,并且图像大小未更新。我试图通过将我的调整大小函数连接到signal_window_state_event 来解决这个问题,但它不起作用,因为在调整窗口大小之前发送信号并运行我的函数没有意义,因为它变得旧 Gtk::图片小部件尺寸参数。

  2. 类似的故事是在启动我的应用程序时加载第一张图片 - 当我将 loadImage() 连接到主窗口的 signal_show 时,它会在启动之前窗口最大化并且图像保持不变非常小。

如果有人能给我一些关于如何正确操作的想法,我将非常感激。 GTKmm 文档真的很差,我不知道该怎么做。

负责上述操作的代码在这里(其余代码在存储库中): https://github.com/jjkrol/ZPR/blob/master/src/gui.cpp

非常感谢您。

【问题讨论】:

  • 您是否尝试连接到 size-allocate 信号或覆盖 on_size_allocate()?
  • 谢谢,成功了!我遇到了这个信号的问题,忘记重试了。
  • 对我来说,gtkmm 文档的详细程度已经足够了;我需要做的一切,我已经能够从参考手册和教程中提炼出来。也许过去不是那么好;我不知道。

标签: window gtk signals gtkmm


【解决方案1】:

解决方案是将我的函数连接到signal_size_allocate,现在不需要任何其他信号。谢谢ergosys

【讨论】:

  • 恭喜修复!如果有能力,请确保将您的答案标记为“已接受”,以便其他人可以从您的成功中学习。干杯~