[Tutor PyCZ] polozka listbox

Jakub Vojáček Jakohv na seznam.cz
Čtvrtek Březen 22 10:48:17 CET 2007


> ------------ Původní zpráva ------------
> Od: Ondryska Jaromír <ondryskajaromir na seznam.cz>
> Předmět: Re: [Tutor PyCZ] polozka listbox
> Datum: 22.3.2007 05:50:10
> ----------------------------------------
> On Wed, 21 Mar 2007 17:47:01 +0100, Pavel Kosina <geon na post.cz> wrote:
> 
> > Ondryska Jaromír napsal(a):
> >> Jak docílit toho, aby mi
> >> get( ANCHOR ) dávalo
> >> aktuálně označenou položku?
> >>
> >
> > Ukaž kod (demo) nebo se  koukni na http://tkintercz.wz.cz/listbox.htm.
> >
> 
> Zdravím,
> z http://tkintercz.wz.cz/listbox.htm vycházím, je to moje referenční  
> příručka.
> Kód:
> class window:
> 	def __init__( self, frame ):
> 		self.listbox_1 = Listbox( frame, selectmode=SINGLE )
> 		self.listbox_1.grid( row=2, column=0, sticky=W+E+N+S, columnspan=3 )
> 		self.listbox_1.bind( "<1>", self.mouse_at_listbox_1 )
> 
> 	def fill_listbox( self, array_of_video_items ):
>                  print "function fill_listbox, parameter is:",  
> array_of_video_items
>                  self.listbox_1.delete( 0, END )
>                  for item in array_of_video_items:
>                          self.listbox_1.insert( END, item.path_to_video )
> 
>          def mouse_at_listbox_1( self, param ):
>                  print "mouse pressed at listbox"
>                  #selected_item = self.listbox_1.get( ANCHOR )
>                  selected_item = self.listbox_1.curselection()
>                  print selected_item
> 

Nejlehčí je použíd double klik:

from Tkinter import*
class window:
    def __init__( self, frame ):
        self.listbox_1 = Listbox( frame, selectmode=SINGLE )
        self.listbox_1.grid( row=2, column=0, sticky=W+E+N+S, columnspan=3 )
        self.listbox_1.bind( "<Double-1>", self.mouse_at_listbox_1 )
        for prvek in ["skladba 1","skladba 2","skladba 3"]:
            self.listbox_1.insert(END,prvek)
    def fill_listbox( self, array_of_video_items ):
        print "function fill_listbox, parameter is:",  array_of_video_items
        self.listbox_1.delete( 0, END )
        for item in array_of_video_items:
            self.listbox_1.insert( END, item.path_to_video )

    def mouse_at_listbox_1( self, param ):
        print "mouse pressed at listbox"
        #selected_item = self.listbox_1.get( ANCHOR )
        selected_item = self.listbox_1.get(self.listbox_1.curselection()[0])
        print selected_item
if __name__ == "__main__":
    okno=Tk()
    window(okno)
    mainloop()


Blujacker


Další informace o konferenci Tutor