我有一个gtkscrolledwindow窗口,其中有一个gtk映像。如何在GtkScrolledWindow中获得当前显示区域?例如,我的图像是1366x768 pix和300x400 pix,图像的一部分显示在滚动窗口中。我想得到显示部分的坐标(x,y,宽度,高度),我在这里看: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中使用的调整,允许值的有效范围从调整->下到调整->上调整->页面大小。
发布于 2013-08-05 22:03:51
我想你想要实现这样的目标:

而x和y描述位于图像部分左上角的点,而width和height则与图像部分的大小有关。此外,我假设GtkImage对象被添加到GtkViewport小部件中,GtkViewport被添加到GtkScrolledWindow中。
不幸的是,我不能给你一个具体的回答,因为我对它一无所知。但是,如果您能够将gtk的参考手册中的信息传递给python,那么您应该能够实现它。
如果您想要有关图像部分的坐标的信息,首先必须获得vadjustment和hadjustment小部件的GtkScrolledWindow属性。这些属性是GtkAdjustment对象,包含所需的信息。这些对象的page-size属性与可见图像部分(即width和height )的大小有关。而value属性vadjustment和hadjustment都定义了图像部分左上角的点,即x和y。
如果要对上述属性的更改做出异步响应,则应将两个调整对象的changed和value-changed信号连接到一个和相同的信号处理程序。
https://stackoverflow.com/questions/18057928
复制相似问题