[Tkinter-discuss] Bug in pybwidgets/ListBox?
Kevin Walzer
kw at codebykevin.com
Thu Dec 7 18:11:33 CET 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I'm trying to use pybwidgets in an application I'm developing; the
BWidgets listbox supports insertion of images alongside text, and is
nicer than the alternatives I've looked at (various tree widgets, for
instance).
I've found what I think is a bug. When the BWidgets listbox is placed
inside a panewindow, it does not properly display the
selectforeground/selectbackground colors--in fact, it provides no visual
feedback at all that a listbox item is selected.
The following code illustrates the problem. The listbox does respond to
button events; when an item is selected, text is printed to the text
widget. But there is no visual selection feedback in the listbox itself.
Can someone review this, test it, and let me know if I'm doing something
wrong, or if this is in fact a bug? Thanks.
- ---
import Tkinter
from bwidget import *
import bwidget
root = Tkinter.Tk()
right = ""
m = Tkinter.PanedWindow(root, orient="horizontal")
m.pack(fill="both", expand=1)
textimage = Tkinter.PhotoImage(data="""
R0lGODlhEAAQANUAAAAAAODg4MjIyIiIiODg6OjQ+NjY4ODo6ODQ8OjY8OjQ8ODQ6ODY6NDI4Njg
6BgYGNDQ0NDQyMDAwNjQ6Njg4NjQ0NDY4BAQEKioqCAgIHh4eKigoLCoqJiYmAgICLCwsLi4uNjY
6NDQ2NjY2Ojo8ODo8Ojw8ODg8Ojo6PDw+PDw8Pj4+Pjw+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC0AIf/8SUNDUkdCRzEwMTIA
AALMYXBwbAIAAABtbnRyUkdCIFhZWiAH1gALABQAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAxyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0
AAABUAAAABRjaGFkAAABZAAAACxyVFJDAAABkAAAAA5nVFJDAAABoAAAAA5iVFJDAAABsAAAAA52
Y2d0AAABwAAAADBu/2RpbgAAAfAAAAA4ZGVzYwAAAigAAAB0Y3BydAAAApwAAAAtWFlaIAAAAAAA
AHRLAAA+HQAAA8xYWVogAAAAAAAAWnMAAKymAAAXJlhZWiAAAAAAAAAoGAAAFVcAALgzWFlaIAAA
AAAAAPNRAAEAAAABFsxzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADA
bmN1cnYAAAAAAAAAAQI5AABjdXJ2AAAAAAAAAAECOQAAY3VydgAAAAAAAAABAjkAAHZjZ3QAAAAA
AAAAAQABAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAAAAAAEAANxuZGluAAAAAAAAADAAAKFI
AABXCgAAS4UAAJrhAAAnrgAAE7YAAFANAABUOQACOOQAAjjkAAI45GRlc2MAAAAAAAAAGkNhbGli
cmF0ZWQgUkdCIENvbG9yc3BhY2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmln
aHQgQXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAACwAAAAAEAAQAAAGmUCNZEgsDgWDFmjF
Yq2e0Cjk8VkVFKRS6XQiEBwhVYS6SiRMpDQJdfCmBGQzOuv1OlTwKgKRLdW/YXAcZQpzKH8UeA8Y
KwsLJH9fBgYkEouNC211Dg6TlZcTmZuTnpaMExOaBBSkBiimK6iaAaykrw8bKw0NBK0GFiIiByCX
DAxpqpIqlhoBI8/QFRDTEAEdHi0Z2tvc2xctQQA7
""")
left = ListBox(m, selectbackground="black", selectforeground="white")
m.add(left)
for text in "abcde":
left.insert("end", text=text*3, image=textimage)
left.bind_image("<Button-1>", (lambda event: printstuff()))
left.bind_text("<Button-1>", (lambda event: printstuff()))
right = Tkinter.Text(m)
m.add(right)
right=right
def printstuff():
global right
right.insert("end", "pressed\n")
root.mainloop()
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFeEtEEsLm8HXyq4sRAhslAJ9S9wifqlh9xe9QqNosDESj1oZO0wCbB8yr
N+2+YX9LYgesxHwP5tmCOhw=
=NsRv
-----END PGP SIGNATURE-----
More information about the Tkinter-discuss
mailing list