f



Using TCL files in Python ?

I am reasonably new to programming in Python. [Using LINUX]

Up until now I have been using GUI widgets supplied by 'Tkinter' but
starting to realise that Tkinter have limited widgets.

I have been given the lead that I should look at other sources for GUI
widgets - namely TCL.

I have just done a search for 'tcl' files on my 'Fedora 3' installation
and find I have available:

  Tix8.1
  Tcl8.4
  Tk8.4

I have never used TCL code under Python so I assume I can use widgets from
any of these providers ?

Where is a good resource I can use to help understand how to use TCL files
in Python ?

Thanks for your help.

Pete

0
pgmoscatt1 (30)
5/11/2005 9:15:04 AM
comp.lang.python 77058 articles. 6 followers. Post Follow

3 Replies
426 Views

Similar Articles

[PageSpeed] 36

In article <pan.2005.05.11.09.15.00.27816@optushome.com.au>,
Peter Moscatt  <pgmoscatt@optushome.com.au> wrote:
>I am reasonably new to programming in Python. [Using LINUX]
>
>Up until now I have been using GUI widgets supplied by 'Tkinter' but
>starting to realise that Tkinter have limited widgets.
>
>I have been given the lead that I should look at other sources for GUI
>widgets - namely TCL.
>
>I have just done a search for 'tcl' files on my 'Fedora 3' installation
>and find I have available:
>
>  Tix8.1
>  Tcl8.4
>  Tk8.4
>
>I have never used TCL code under Python so I assume I can use widgets from
>any of these providers ?
>
>Where is a good resource I can use to help understand how to use TCL files
>in Python ?
			.
			.
			.
It's likely to take a few rounds to make these things clear.  I'll start.

You want more widgets than base Tkinter supplies.  I understand that.
Please read <URL: http://starship.python.net/crew/cjr/tkinter.html >.

It is indeed useful to look to Tcl for functionality to use in Tkinter.
I detect a couple of missteps in how you're thinking about this, though.
First, Tcl adepts generally speak of "Tk" or "Tcl/Tk" when considering
widgetry; in idiomatic Tcl-speak, "Tcl" itself has no widgets.

You're right to mention Tix, Tk, and Tcl as Tcl-related installations
Fedora includes.  There actually are a few more, but you needn't concern
yourself with them now.  Of these, Tkinter already includes all the
functionality of Tcl and Tk, and the hyperlink provided above explains
Tix.

What if you encounter other Tcl packages?  Keep in mind that many Tcl
packages have nothing to do with graphical user interfaces (GUIs); they
do network programming or satellite management or locomotive control or
other domain-specific stuff that's orthogonal to GUIing.  Tkinter *can*,
generally, exploit Tcl-coded GUI extensions.  One of us will follow-up
with a reference to that topic.
0
claird (2363)
5/11/2005 11:08:02 AM
--+QahgC5+KEYLbs62
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

While I've never used it, there *is* a Tix module in Python which
appears to wrap the widgets provided by Tix.  In Fedora Core 2, Python
doesn't seem to be configured to use Tix OOTB but a one-liner (that
should be harmless elsewhere) does make it work.

These classes are defined in the Tix module:
['Shell', 'Meter', 'TixSubWidget', 'ExFileSelectDialog',
'NoteBookFrame', 'DirSelectDialog', 'Control', 'LabelEntry',
'ButtonBox', 'ScrolledTList', 'Select', 'HList', 'Balloon', 'PopupMenu',
'DirSelectBox', 'ComboBox', 'ScrolledWindow', 'Grid', 'CheckList',
'DialogShell', 'Tree', 'DirList', 'ResizeHandle', 'NoteBook',
'ListNoteBook', 'ScrolledGrid', 'FileEntry', 'ScrolledHList', 'DirTree',
'OptionMenu', 'ScrolledText', 'LabelFrame', 'FileSelectBox',
'ScrolledListBox', 'InputOnly', 'PanedWindow', 'StdButtonBox',
'FileSelectDialog', 'CObjView', 'ExFileSelectBox', 'TList']

Here's what I did to get a simple Tix widget to work:
>>> import Tkinter, Tix
>>> t =3D Tkinter.Tk()
>>> t.tk.call("package", "require", "Tix")
'8.1.8.4'
>>> u =3D Tix.ComboBox(t)
>>> for i in range(30): u.insert("end", "Item %d" % i)
=2E..=20
>>> u.pack()

Jeff

--+QahgC5+KEYLbs62
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFCgfjuJd01MZaTXX0RAsP6AJ9V0HWPVBm73dWl4wUwhcTftNQ7qACfQupx
GkW+1zRYrVTXQmHDk18CBZU=
=8lbS
-----END PGP SIGNATURE-----

--+QahgC5+KEYLbs62--
0
jepler (801)
5/11/2005 12:22:09 PM
Many thanks to all who have helped me out on this one - much appreciated.

Pete



On Wed, 11 May 2005 07:22:09 -0500, Jeff Epler wrote:

> While I've never used it, there *is* a Tix module in Python which
> appears to wrap the widgets provided by Tix.  In Fedora Core 2, Python
> doesn't seem to be configured to use Tix OOTB but a one-liner (that
> should be harmless elsewhere) does make it work.
> 
> These classes are defined in the Tix module:
> ['Shell', 'Meter', 'TixSubWidget', 'ExFileSelectDialog',
> 'NoteBookFrame', 'DirSelectDialog', 'Control', 'LabelEntry',
> 'ButtonBox', 'ScrolledTList', 'Select', 'HList', 'Balloon', 'PopupMenu',
> 'DirSelectBox', 'ComboBox', 'ScrolledWindow', 'Grid', 'CheckList',
> 'DialogShell', 'Tree', 'DirList', 'ResizeHandle', 'NoteBook',
> 'ListNoteBook', 'ScrolledGrid', 'FileEntry', 'ScrolledHList', 'DirTree',
> 'OptionMenu', 'ScrolledText', 'LabelFrame', 'FileSelectBox',
> 'ScrolledListBox', 'InputOnly', 'PanedWindow', 'StdButtonBox',
> 'FileSelectDialog', 'CObjView', 'ExFileSelectBox', 'TList']
> 
> Here's what I did to get a simple Tix widget to work:
>>>> import Tkinter, Tix
>>>> t = Tkinter.Tk()
>>>> t.tk.call("package", "require", "Tix")
> '8.1.8.4'
>>>> u = Tix.ComboBox(t)
>>>> for i in range(30): u.insert("end", "Item %d" % i)
> ... 
>>>> u.pack()
> 
> Jeff

0
pgmoscatt1 (30)
5/12/2005 7:46:24 AM
Reply: