Using Tcl extensions with Python?

C

C Martin

How do you setup a Tcl extension to be accessible through Python? I
understand that I'll have to use native Tcl calls to use it (tk.call()
etc), but I can't figure out where to put the files or how to
initialize them so I can call them.

The package I would like to use is TkPNG: http://www.muonics.com/FreeStuff/TkPNG/

Thanks.
 
G

Guilherme Polo

How do you setup a Tcl extension to be accessible through Python? I
understand that I'll have to use native Tcl calls to use it (tk.call()
etc), but I can't figure out where to put the files or how to
initialize them so I can call them.

The package I would like to use is TkPNG: http://www.muonics.com/FreeStuff/TkPNG/

You can put them anywhere, but if it is on tcl's auto_path then you
just need a call to "package require tkpng". To check what directories
are part of auto_path, start tclsh and enter "set auto_path".

Follows a sample code to demonstrate how to load the required package:

import Tkinter

root = Tkinter.Tk()
tkpnglib = "/usr/lib/tkpng0.9"
root.tk.eval("""
global auto_path
lappend auto_path {%s}""" % tkpnglib)

root.tk.eval("package require tkpng")

If tkpng were installed in some directory belonging to auto_path, then
you wouldn't need that call to tk.eval.

And.. for tkpng specifically, you won't need tk.call to use it, you
just need to create your images using Tkinter.PhotoImage with a "png"
type.
 
T

Thomas Troeger

C

C Martin

And.. for tkpng specifically, you won't need tk.call to use it, you
just need to create your images using Tkinter.PhotoImage with a "png"
type.

Thank you Guilherme, that's all great info.
ARGH, Tcl!!! ;-) I know that's not the question, but do you know PIL
(http://www.pythonware.com/products/pil)?

Yes, I know about PIL. However, I need use PNGs with a full alpha
channel. PIL only seems support simple transparency, whereas TkPNG
seems to work as expected with them. If I am incorrect in this, then
please let me know how to use it!

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top