2

我有一个 gtkscrolledwindow,里面有一个 gtk 图像。如何在 GtkScrolledWindow 中获取当前显示区域?例如,我的图像是 1366x768 pix,图像的 300x400 pix 部分显示在滚动窗口中。我想获得像 (x,y,width,height) 这样的显示部分的坐标,我正在看这里:https ://developer.gnome.org/gtkmm/unstable/classGtk_1_1ScrolledWindow.html但找不到任何解决方案。谢谢。

编辑:来自 user1146332 的解决方案非常感谢。对于python代码:

    x = self.scrolledwindow.get_hadjustment()
    print str(x.get_page_size()) + " width of showing area"  
    y =self.scrolledwindow.get_vadjustment()
    print str(y.get_page_size()) + " height of showing area"
    print str(x.get_upper()) + " image width in scrolledwindow"
    print str(y.get_upper()) + " image height in scrolledwindow"
    print str(x.get_value()) + " x position"
    print str(y.get_value()) + " y position"

请注意,对于在 GtkScrollbar 中使用的调整,允许值的有效范围从调整->下限到调整->上限-调整->页面大小。

4

1 回答 1

1

我想你想实现这样的目标:

坐标

xy描述位于图像部分左上角的点, 和 与图像部分widthheight大小有关。此外,我假设该GtkImage对象被添加到一个GtkViewport小部件并且GtkViewport被添加到一个GtkScrolledWindow.

不幸的是,我不能给你一个 python 特定的答案,因为我对此一无所知。但是,如果您能够将信息从 gtk 的参考手册传输到 python,您应该能够实现它。

如果您想要有关图像部分坐标的信息,您首先必须获取小部件的vadjustmenthadjustment属性GtkScrolledWindow。这些属性是GtkAdjustment对象,包含您需要的信息。这些对象的page-size属性与可见图像部分的大小有关,即widthheight。而value两者的属性vadjustmenthadjustment定义图像部分左上角的点,即xy

如果您想对上述属性的变化做出异步反应,您应该将两个调整对象的changed和信号连接到同一个信号处理程序。value-changed

于 2013-08-05T22:03:51.540 回答