Python: как заставить Gtk.scrolledwindow прокручивать выбор в Gtk.Treeview
Как мне заставить Gtk.scrolledwindow прокручивать выделение в Gtk.Treeview.
Я пишу приложение для сенсорного экрана с киоском, в котором есть кнопки вверх и вниз для перемещения выделения в виде дерева.
Это не не прокручивает окно прокрутки, когда выбор исчезает с экрана.
Моя идея обойти это, когда нажата кнопка "вниз" для выбора, чтобы переместиться вниз на один (как это уже делает), а затем для прокручиваемого окна, чтобы прокрутить выбор на древовидном представлении, но я не могу понять, как.
Я использую Gtk3
Кто-нибудь может дать мне какие-нибудь идеи?
2 ответа
Смотрите: http://lazka.github.io/pgi-docs/Gtk-3.0/classes/TreeView.html
Не добавляйте свое древовидное представление в прокручиваемое окно с помощью "add_with_viewport". См. http://mailman.daa.com.au/cgi-bin/pipermail/pygtk/2009-January/016440.html
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Auto Scroll")
self.set_size_request(400, 200)
self.liststore = Gtk.ListStore(str, str)
for n in range(40):
self.liststore.append(["Info", "http://lazka.github.io/pgi-docs/Gtk-3.0/classes/TreeView.html"])
treeview = Gtk.TreeView(model=self.liststore)
for n, name in enumerate(["Name", "Link"]):
renderer_text = Gtk.CellRendererText()
column_text = Gtk.TreeViewColumn("Text", renderer_text, text=n)
treeview.append_column(column_text)
scrolled_window = Gtk.ScrolledWindow()
self.add(scrolled_window)
scrolled_window.add(treeview)
def main(self):
Gtk.main
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
После того, как вы переместили вызов вызова gtk_tree_view_scroll_to_cell по выбранному пути.