diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2003-03-31 15:10:46 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2003-03-31 15:10:46 (GMT) |
commit | 71ad9fb74ff367e0c89f3fce34febd4eae2a4e2b (patch) | |
tree | be2e914a6d425d888a9c7a44492fb8552a7d1bf0 | |
parent | 007fadd59dfe3db2a9ae09d7e92de3d5595aa1de (diff) | |
download | cpython-71ad9fb74ff367e0c89f3fce34febd4eae2a4e2b.zip cpython-71ad9fb74ff367e0c89f3fce34febd4eae2a4e2b.tar.gz cpython-71ad9fb74ff367e0c89f3fce34febd4eae2a4e2b.tar.bz2 |
Added 1-page introductions to creating GUIs in Python and the OSA
interface.
3 files changed, 108 insertions, 0 deletions
diff --git a/Mac/OSXResources/app/Resources/English.lproj/Documentation/gui.html b/Mac/OSXResources/app/Resources/English.lproj/Documentation/gui.html new file mode 100644 index 0000000..e715de4 --- /dev/null +++ b/Mac/OSXResources/app/Resources/English.lproj/Documentation/gui.html @@ -0,0 +1,55 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> +<html lang="en"> +<head> + <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> + <title>Creating a User Interface with MacPython</title> + <meta name="generator" content="BBEdit 6.5.3"> + <link rel="SHORTCUT ICON" href="pythonsmall.gif"> + <META NAME="AppleIcon" CONTENT="pythonsmall.gif"> +</head> +<body> +<h1>Creating a User Interface with MacPython</h1> + +<p>There are a number of packages that allow creation of a user interface +for your Python code, each of which has its own merits:</p> + +<ul> + <li> The Carbon package gives low-level access to the old Macintosh toolbox + calls for windows, events, dialogs and more. The <tt>FrameWork</tt> module + wraps these in a minimal framework. For documentation see the Macintosh + Library section of the <a href="doc/index.html">Python Language and runtime + documentation</a> and the Human Interface Toolbox section of + <a href="help:openbook=Carbon">Apple's Carbon Documentation</a>. + This solution is compatible with MacPython-OS9. + + <li> The <tt>W</tt> framework is built on top of this, and easier to use. + The MacPython IDE uses W. Some documentation is available on + <a href="http://www.nevada.edu/~cwebster/Python/index.html">Corran Webster's website</a>. + Compatible with MacPython-OS9. +</ul> + +<p>For new work, however, one of the following packages may be better suited. +They may be available out of the box in this distribution, otherwise you +can install them through the <a href="packman.html">Package Manager</a>:</p> + +<ul> + <li> <a href="http://pyobjc.sourceforge.net/">PyObjC</a> allows complete access to Cocoa. + In technical terms it is a + bidirectional bridge between Python and Objectve-C, similar to Apple's Java + bridge. Probably the best choice for Mac OS X-only applications, but at the + time of this writing PyObjC is still in beta. + + <li> <a href="http://wxpython.sourceforge.net/">wxPython</a> gives Python programs + access to the wxWindows GUI toolkit. Many people consider this + the best open source cross-platform GUI solution available today. + + <li> Tkinter is the oldest cross-platform GUI toolkit for Python, bridging Python + to Tcl/Tk. If you install AquaTk it creates a native user interface on Mac OS X. + Documented in the Library section, Tkinter subsection of the + <a href="doc/index.html">Python Language and runtime documentation</a>. Tkinter + is not available for MacPython-OS9. +</ul> + +</body> +</html> diff --git a/Mac/OSXResources/app/Resources/English.lproj/Documentation/index.html b/Mac/OSXResources/app/Resources/English.lproj/Documentation/index.html index b020d2f..849548b 100644 --- a/Mac/OSXResources/app/Resources/English.lproj/Documentation/index.html +++ b/Mac/OSXResources/app/Resources/English.lproj/Documentation/index.html @@ -30,6 +30,8 @@ <li><a href="finder.html">Running Python scripts from the Finder</a> </li> <li><a href="shell.html">Running Python scripts from the Unix Shell</a> + <li><a href="gui.html">Creating a User Interface with MacPython</a> + <li><a href="scripting.html">Controlling other Applications from MacPython</a> <li><a href="packman.html">Installing additional functionality with the Package Manager</a> </li> diff --git a/Mac/OSXResources/app/Resources/English.lproj/Documentation/scripting.html b/Mac/OSXResources/app/Resources/English.lproj/Documentation/scripting.html new file mode 100644 index 0000000..9d2fe0e --- /dev/null +++ b/Mac/OSXResources/app/Resources/English.lproj/Documentation/scripting.html @@ -0,0 +1,51 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> +<html lang="en"> +<head> + <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> + <title>Controlling other Applications from MacPython</title> + <meta name="generator" content="BBEdit 6.5.3"> + <link rel="SHORTCUT ICON" href="pythonsmall.gif"> + <META NAME="AppleIcon" CONTENT="pythonsmall.gif"> +</head> +<body> +<h1>Controlling other Applications from MacPython</h1> + +<p>Python has a fairly complete implementation of the Open Scripting +Architecure (OSA, also commonly referred to as AppleScript), allowing +you to control scriptable applications from your Python program, +and with a fairly pythonic interface. The following pieces of +AppleScript and Python are rougly identical (XXXX Not true right now!):</p> + +<blockquote><tt><pre> +tell application "Finder" + get name of window 1 +end tell +</pre></tt></blockquote> + +<blockquote><tt><pre> +import Finder + +f = Finder.Finder() +print f.get(Finder.window(1).name) +</pre></tt></blockquote> + +<p>To send AppleEvents to an application you must first create the Python +modules interfacing to the terminology of the application (what +<tt>Script Editor</tt> calls the "Dictionary"). Use the IDE menu command +<tt>File->Generate OSA Suite...</tt> for this. For more control run</p> + +<blockquote><tt> +pythonw .../Lib/plat-mac/gensuitemodule.py --help +</tt></blockquote> + +<p>from a terminal window.</p> + +<h2>Creating a scriptable application in Python</h2> + +You can also create a scriptable application in Python, but this is not +very well documented. For Carbon +applications you should look at the <tt>MiniAEFrame</tt> module. + +</body> +</html> |