[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