Вручную выделите ребенка в Gtk.ScrolledWindow - PullRequest
0 голосов
/ 02 января 2019

Я разрабатываю приложение GTK (в Python с PyGTK), и мне нужно вручную прокрутить окно Gtk.ScrolledWindow до дочернего элемента, который в нем содержится, чтобы показать его на экране.

ScrolledWindow содержит ListBox, который содержит много ListBoxRow.

self.currencySwitcher = CurrencySwitcher(self) self.currencySwitcherBox = Gtk.ScrolledWindow(vexpand = True) self.currencySwitcherBox.add(self.currencySwitcher)

CurrencySwitcher наследует Gtk.ListBox:

class CurrencySwitcher (Gtk.ListBox): # ...

У меня есть поисковая система, чтобы найти определенную строку в этом ListBox, но когда я щелкаю по строке поиска, она не отображается на экране (я должен прокрутить, чтобы увидеть ее) Поэтому я должен иметь возможность прокрутить ребенка, чтобы увидеть его на экране, без необходимости прокручивать ScrolledWindow

вручную.

Как я могу это сделать? Я уже много искал, но не могу найти хороший ответ. Спасибо

1 Ответ

0 голосов
/ 07 марта 2019

Gtk.ListBox также наследуется от Gtk::Container, поэтому взгляните на set_focus_vadjustment() и set_focus_hadjustment() члены Gtk.Container.

После того, как вы вызвали одну или обе эти функции в своем ListBox, вы можете иметь свой дочерний элемент ListBoxRow grab_focus() (унаследованный от Gtk.Widget), и он будет прокручиваться в виде.

...