tkinter listboxes

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • rahulnag22@yahoo.com

    #1

    tkinter listboxes

    I will give a simplified example of the problem at hand --

    I have a case in which I have two listboxes - listbox1 and listbox2,
    if I click on an item in listbox1 the item gets highlighted as
    expected. Now if I click on an item in listbox2 the selected item in
    listbox1 loses its highlight. My question is how do I keep the
    listbox1 item from losing its highlight if I select an item in
    listbox2 or to that matter any other widget.

    Thanks
    Rahul

  • James Stroud

    #2
    Re: tkinter listboxes

    rahulnag22@yaho o.com wrote:
    I will give a simplified example of the problem at hand --
    >
    I have a case in which I have two listboxes - listbox1 and listbox2,
    if I click on an item in listbox1 the item gets highlighted as
    expected. Now if I click on an item in listbox2 the selected item in
    listbox1 loses its highlight. My question is how do I keep the
    listbox1 item from losing its highlight if I select an item in
    listbox2 or to that matter any other widget.
    >
    Thanks
    Rahul
    >
    You will need to bind '<Button-1>' for each list box to something like:


    def button1(e):
    row = e.widget.lists[0].nearest(e.y)
    e.widget.select ion_clear(0, END)
    e.widget.select ion_set(row)
    return 'break'

    # how to bind
    alistbox.bind(' <Button-1>', button1)


    The less than obvious thing here is that selections (highlighted here)
    are different than the active index (which is marked with an underline).
    You are probably using the active index and don't realize the difference.

    James

    Comment

    • Eric Brunel

      #3
      Re: tkinter listboxes

      On Fri, 04 May 2007 05:26:56 +0200, <rahulnag22@yah oo.comwrote:
      I will give a simplified example of the problem at hand --
      >
      I have a case in which I have two listboxes - listbox1 and listbox2,
      if I click on an item in listbox1 the item gets highlighted as
      expected. Now if I click on an item in listbox2 the selected item in
      listbox1 loses its highlight. My question is how do I keep the
      listbox1 item from losing its highlight if I select an item in
      listbox2 or to that matter any other widget.
      By default, the 'highlighting' is considered as a selection. Since you
      can't have two items selected at the same time, the second cancels the
      first. To avoid this behaviour, make each list keep its selection to
      itself by using the 'exportselectio n=0' option when you create the Listbox
      instance. This should work as you expect.

      HTH
      --
      python -c "print ''.join([chr(154 - ord(c)) for c in
      'U(17zX(%,5.zmz 5(17l8(%,5.Z*(9 3-965$l7+-'])"

      Comment

      • rahulnag22@yahoo.com

        #4
        Re: tkinter listboxes

        On May 4, 1:55 am, "Eric Brunel" <eric.bru...@pr agmadev.comwrot e:
        On Fri, 04 May 2007 05:26:56 +0200, <rahulna...@yah oo.comwrote:
        I will give a simplified example of the problem at hand --
        >
        I have a case in which I have two listboxes - listbox1 and listbox2,
        if I click on an item in listbox1 the item gets highlighted as
        expected. Now if I click on an item in listbox2 the selected item in
        listbox1 loses its highlight. My question is how do I keep the
        listbox1 item from losing its highlight if I select an item in
        listbox2 or to that matter any other widget.
        >
        By default, the 'highlighting' is considered as a selection. Since you
        can't have two items selected at the same time, the second cancels the
        first. To avoid this behaviour, make each list keep its selection to
        itself by using the 'exportselectio n=0' option when you create the Listbox
        instance. This should work as you expect.
        >
        HTH
        --
        python -c "print ''.join([chr(154 - ord(c)) for c in
        'U(17zX(%,5.zmz 5(17l8(%,5.Z*(9 3-965$l7+-'])"

        Eric that works. Thank You. James thank you for the detailed
        explanation it will be useful for me.
        Regards
        Rahul

        Comment

        Working...