4

我需要一个简单的图像查看器小部件来显示 Pixbuf,缩放因子可以使用滚轮更改(仅整数因子,最近邻插值),放大应该调整滚动位置,以便当前中心或鼠标位置将成为原点。单击并拖动鼠标应相应地移动表面;基本上做什么eogevince做什么。

曾经有一个 GTK2 的外部gtk-image-viewer组件,但我没有找到其他任何东西......</p>

所以我尝试实现自己的,这就是我走了多远:

struct ZoomableImage : public Gtk::Scrollable, public Gtk::DrawingArea {
    ZoomableImage() {
        auto h = get_hadjustment();
    }
};

导致警告

gtk_scrollable_get_hadjustment: assertion `GTK_IS_SCROLLABLE (scrollable)' failed

我找不到任何关于如何在 GTKmm 中继承接口的适当文档,标题隐藏了 doxygen 的构造函数,它应该被基类init()函数的结果调用?!一些示例 initialize Glib::ObjectBase(typeid(ZoomableImage)),这只会增加更多错误。

(我的想法是将我的 ZoomableImage 放在一个 ScrolledWindow 中,它应该为我提供 H/V 调整,这些范围从 0 到图像的实际高度/宽度,on_draw我会读取调整的值,应用缩放因子并绘制相应的 Pixbuf。这有意义吗?)

4

0 回答 0