X display visual

Piers Lauder piers at cs.su.oz.au
Wed Dec 8 16:28:23 EST 1999


Randall Hopper <aa8vb at yahoo.com> wrote:
 >
 > To be more robust, pick a visual returned by:
 >
 >  root.winfo_visualsavailable()

Just for the record, this particular Tkinter method
doesn't work on either my Linux or Solaris boxes:

	: linux ; python
	impPython 1.5.2 (#8, May  4 1999, 18:16:39)  [GCC 2.7.2.3] on linux2
	Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
	o>>> import Tkinter
	>>> r=Tkinter.Tk()
	>>> r.withdraw()
	''
	>>> r.winfo_visualsavailable()
	Traceback (innermost last):
	  File "<stdin>", line 1, in ?
	  File "/usr/lib/python1.5/lib-tk/Tkinter.py", line 428, in winfo_visualsavailable
	    return map(parseitem, data)
	  File "/usr/lib/python1.5/lib-tk/Tkinter.py", line 427, in parseitem
	    return x[:1] + tuple(map(getint, x[1:]))
	TypeError: illegal argument type for built-in operation


	# solaris ; python
	Python 1.5.2 (#10, May 11 1999, 15:32:03)  [GCC 2.8.1] on sunos5
	Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
	>>> import Tkinter
	>>> r=Tkinter.Tk()
	>>> r.withdraw()
	''
	>>> r.winfo_visualsavailable()
	Traceback (innermost last):
	  File "<stdin>", line 1, in ?
	  File "/usr/local/lib/python1.5/lib-tk/Tkinter.py", line 428, in winfo_visualsavailable
	    return map(parseitem, data)
	  File "/usr/local/lib/python1.5/lib-tk/Tkinter.py", line 427, in parseitem
	    return x[:1] + tuple(map(getint, x[1:]))
	TypeError: illegal argument type for built-in operation


To track doesn what exactly *is* being returned, I tried:

	>>> r.tk.call('winfo', 'visualsavailable', r._w, None)
	'{truecolor 24}'
	>>> r.tk.split('{truecolor 24}')
	'truecolor 24'
	>>> def parseitem(x):
	...  return x[:1] + map(int, x[1:])
	... 
	>>> map(parseitem, 'truecolor 24')
	Traceback (innermost last):
	  File "<stdin>", line 1, in ?
	  File "<stdin>", line 2, in parseitem
	TypeError: illegal argument type for built-in operation








More information about the Python-list mailing list