Как я могу получить текущую область показа в GtkScrolledWindow
У меня есть gtkscrolledwindow, и в нем есть изображение gtk. Как я могу получить текущую область показа в GtkScrolledWindow? Например, мое изображение имеет размер 1366x768 пикселей, а часть изображения 300x400 пикселей отображается в окне прокрутки. Я хочу получить координаты показа детали наподобие (x,y, ширина, высота). Я ищу здесь: https://developer.gnome.org/gtkmm/unstable/classGtk_1_1ScrolledWindow.html но не могу найти никакого решения. Благодарю.
РЕДАКТИРОВАТЬ: Решение от пользователя 1146332 Большое спасибо. Для кодов питона:
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 ответ
Я думаю, вы хотите достичь чего-то вроде этого:
В то время как x
а также y
описывает точку, расположенную в верхнем левом углу раздела изображения и width
а также height
связаны с размером раздела изображения. Далее я предполагаю, что GtkImage
объект добавлен в GtkViewport
виджет и тому GtkViewport
добавляется в GtkScrolledWindow
,
К сожалению, я не могу дать вам конкретного ответа на Python, так как я ничего не знаю об этом. Но если вы можете перенести информацию из справочного руководства gt k в python, вы сможете это реализовать.
Если вы хотите получить информацию о координатах раздела изображения, вы сначала должны получить vadjustment
а также hadjustment
свойства GtkScrolledWindow
виджет. Эти свойства GtkAdjustment
объекты и содержит необходимую вам информацию. page-size
свойство этих объектов связано с размером видимой части изображения, т.е. width
а также height
, Тогда как value
свойство обоих vadjustment
а также hadjustment
определяет точку в верхнем левом углу раздела изображения, т.е. x
а также y
,
Если вы хотите реагировать на изменения указанных свойств асинхронно, вы должны подключить changed
а также value-changed
сигналы обоих объектов настройки одному и тому же обработчику сигналов.