Právě že chci aby se po spuštění programu
zobrazila naposledy použitá položka.

Proto mi to tlačítko nevyhovuje.
Tak jsem vymyslel zavolání té funkce do_select()
pomocí metody after() (viz příloha)

Funguje to, jen mi to připadá dost podivné/amatérské.

Nicméně děkuji za postrčení!!!!

ZU


Dne 3.6.2014 14:17, Petr Blahos napsal(a):
Ahoj, vypadá to, že na to je funkce see, jenže v tom __init__u to
nefunguje. Patrně je
potřeba, aby se to všechno vytvořilo a zobrazilo, a pak teprve to může
fungovat. Ono
to vlastně dá rozum, jak může see zobrazit něco v rámci něčeho, co vůbec
není vidět?

Když si do __init__u přidáš:
*        self.btn = Button(self)*
*        self.btn['text'] = 'select'*
*        self.btn['command'] = self.do_select*
*        self.btn.grid(row=2, column=0, sticky='ns')*

a pak přidáš funkci
*    def do_select(self):*
*        self.tree.selection_set('I024')*
*        self.tree.see('I024')*

tak po stisku toho tlačítka už to tam nascrolluje.
--
Petr

____________________
http://pysk.blog.root.cz/

2014-06-03 11:58 GMT+02:00 zu1234 <zu1...@seznam.cz
<mailto:zu1...@seznam.cz>>:

    Zdravím vespolek.

    Tvořím GUI aplikaci v tkinteru a je to pro mne docela zápas.

    Narazil jsem na jednu nejasnost a nevím ani jak to na internetu hledat.

    Mám treeview, v něm označím jeden prvek ('134'), on ale je za rohem
    - není vidět.

    Potřeboval bych aby se treeview samo odrolovalo tak, aby označený
    prvek byl viditelný.

    Jak na to? Příklad přikládám.

    Alespoň nějakou nápovědu, prosím :-)

    ZU



    _______________________________________________
    Python mailing list
    python@py.cz <mailto:python@py.cz>
    http://www.py.cz/mailman/listinfo/python

    Visit: http://www.py.cz





_______________________________________________
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

#!/usr/bin/python -u
# -*- coding: utf-8 -*-

import Tkinter as tkinter
import ttk

class app(tkinter.Frame):

        def __init__(self, master):

                tkinter.Frame.__init__(self, master)
                self.tree = ttk.Treeview(self, selectmode = "browse")
                self.tree.grid(row=0, column=0)
                ysb = ttk.Scrollbar(self, orient='vertical', 
command=self.tree.yview)
                xsb = ttk.Scrollbar(self, orient='horizontal', 
command=self.tree.xview)
                self.tree.configure(yscrollcommand=ysb.set, 
xscrollcommand=xsb.set)
                ysb.grid(row=0, column=1, sticky='ns')
                xsb.grid(row=1, column=0, sticky='ew')
                self.grid()

                for x in range(100, 300):
                        root_node = self.tree.insert('', 'end', text = str(x), 
open=True)

                self.tree.after(10, self.do_select, 'I023')

        def do_select(self, item):
                self.tree.selection_set(item)
                self.tree.see(item)
                self.tree.focus(item)
                self.tree.focus_set()

root = tkinter.Tk()
ap = app(root)
root.mainloop()
_______________________________________________
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Odpovedet emailem