[Tutor PyCZ] polozka listbox
Ondryska Jaromír
ondryskajaromir na seznam.cz
Čtvrtek Březen 22 18:26:05 CET 2007
On Thu, 22 Mar 2007 10:48:17 +0100, Jakub Vojáček <Jakohv na seznam.cz> wrote:
>
>> ------------ 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
Ano, double klik opravdu funguje, ale přijde mi to trochu těžkopádné a
stejně pořád nechápu, proč, když je položka
označená, funkce get( ANCHOR ) nevrací tuto položku. Ví někdo proč to tak
je?
Má to tak být, nebo je to chyba?
Díky
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Další informace o konferenci Tutor