By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
438,216 Members | 1,013 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 438,216 IT Pros & Developers. It's quick & easy.

tkinter listboxes

P: n/a
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

May 4 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
ra********@yahoo.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.selection_clear(0, END)
e.widget.selection_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
May 4 '07 #2

P: n/a
On Fri, 04 May 2007 05:26:56 +0200, <ra********@yahoo.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 'exportselection=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.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
May 4 '07 #3

P: n/a
On May 4, 1:55 am, "Eric Brunel" <eric.bru...@pragmadev.comwrote:
On Fri, 04 May 2007 05:26:56 +0200, <rahulna...@yahoo.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 'exportselection=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.zmz5(17l8(%,5.Z*(93-965$l7+-'])"

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

May 4 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.