Как я могу получить текущую область показа в 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 сигналы обоих объектов настройки одному и тому же обработчику сигналов.

Другие вопросы по тегам