2013-08-05 21 views
1

我有一個gtkscrolledwindow並且裏面有一個gtk圖像。我如何獲得當前在GtkScrolledWindow中顯示的區域?例如,我的圖像是1366x768像素,圖像的300x400像素部分顯示在滾動窗口中。我想獲得像(x,y,寬度,高度)顯示部分的座標 我在這裏看:https://developer.gnome.org/gtkmm/unstable/classGtk_1_1ScrolledWindow.html但找不到任何解決方案。 謝謝。我如何獲得當前在GtkScrolledWindow顯示區域

編輯:來自user1146332的解決方案非常感謝。對於蟒代碼:

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使用的調整,允許的值的有效範圍從調整 - 去>低到調整 - >上 - 調整 - > PAGE_SIZE。

回答

1

我猜你想達到這樣的事:

coordinates

xy描述位於圖像部分和widthheight的左上角的點都涉及到大小圖像部分。此外,我假設GtkImage對象被添加到GtkViewport小部件,GtkViewport被添加到GtkScrolledWindow

不幸的是,我不能給你一個python的具體答案,因爲我什麼都不知道。但是,如果您能夠將信息從gtk的參考手冊傳輸到python,您應該可以實現它。

如果要獲取有關圖像部分座標的信息,首先必須獲取GtkScrolledWindow小部件的vadjustmenthadjustment屬性。這些屬性是GtkAdjustment對象幷包含您需要的信息。這些對象的屬性與可見圖像部分的大小有關,即widthheight。儘管vadjustmenthadjustmentvalue屬性定義了圖像部分的左上角處的點,即xy

如果您希望異步更改上述屬性,則應將兩個調整對象的changedvalue-changed信號連接到同一個信號處理程序。

+0

非常感謝你!你的回答正是我想要做的。 – mnrl

相關問題