This file is indexed.

/usr/share/doc/python-gtk2-tutorial/html/ch-Introduction.html is in python-gtk2-tutorial 2.4-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 1. Introduction</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="PyGTK 2.0 Tutorial"><link rel="up" href="index.html" title="PyGTK 2.0 Tutorial"><link rel="previous" href="index.html" title="PyGTK 2.0 Tutorial"><link rel="next" href="ch-GettingStarted.html" title="Chapter 2. Getting Started"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch-GettingStarted.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="ch-Introduction"></a>Chapter 1. Introduction</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="ch-Introduction.html#sec-ExploringPygtk">1.1. Exploring PyGTK</a></span></dt></dl></div><p>PyGTK 2.0 is a set of Python modules which provide a Python
interface to GTK+ 2.X. Throughout the rest of this document PyGTK refers to
the 2.X version of PyGTK and GTK and GTK+ refer to the 2.X version of GTK+.
The primary web site for PyGTK is <a href="http://www.pygtk.org" target="_top">www.pygtk.org</a>. The primary author of
PyGTK is:</p><div class="itemizedlist"><ul type="disc"><li>
James Henstridge <a href="mailto:james@daa.com.au" target="_top">james@daa.com.au</a>
</li></ul></div><p>who is assisted by the developers listed in the AUTHORS file in the
PyGTK distribution and the PyGTK community.</p><p>Python is an extensible, object-oriented interpreted programming
language which is provided with a rich set of modules providing access to a
large number of operating system services, internet services (such as HTML,
XML, FTP, etc.), graphics (including OpenGL, TK, etc.), string handling
functions, mail services (IMAP, SMTP, POP3, etc.), multimedia (audio, JPEG)
and cryptographic services. In addition there are many other modules
available from third parties providing many other services. Python is
licensed under terms similar to the LGPL license and is available for Linux,
Unix , Windows and Macintosh operating systems. More information on Python
is available at www.python.org . The primary Author of Python is:</p><div class="itemizedlist"><ul type="disc"><li>
Guido van Rossum <a href="mailto:guido@python.org" target="_top">guido@python.org</a>
</li></ul></div><p>GTK (GIMP Toolkit) is a library for creating graphical user
interfaces. It is licensed using the LGPL license, so you can develop open
software, free software, or even commercial non-free software using GTK
without having to spend anything for licenses or royalties.</p><p>It's called the GIMP toolkit because it was originally written for
developing the GNU Image Manipulation Program (GIMP), but GTK has now been
used in a large number of software projects, including the GNU Network
Object Model Environment (GNOME) project. GTK is built on top of GDK (GIMP
Drawing Kit) which is basically a wrapper around the low-level functions for
accessing the underlying windowing functions (Xlib in the case of the X
windows system). The primary authors of GTK are:</p><div class="itemizedlist"><ul type="disc"><li>
Peter Mattis <a href="mailto:petm@xcf.berkeley.edu" target="_top">petm@xcf.berkeley.edu</a>
</li><li>
      Spencer Kimball <a href="mailto:spencer@xcf.berkeley.edu" target="_top">spencer@xcf.berkeley.edu</a>
</li><li>
      Josh MacDonald <a href="mailto:jmacd@xcf.berkeley.edu" target="_top">jmacd@xcf.berkeley.edu</a>
</li></ul></div><p>GTK is currently maintained by:</p><div class="itemizedlist"><ul type="disc"><li>
Owen Taylor <a href="mailto:otaylor@redhat.com" target="_top">otaylor@redhat.com</a>
</li><li>
Tim Janik <a href="mailto:timj@gtk.org" target="_top">timj@gtk.org</a>
</li></ul></div><p>GTK is essentially an object oriented application programmers
interface (API). Although written completely in C, it is implemented using
the idea of classes and callback functions (pointers to functions).</p><p>There is also a third component called GLib which contains a few
replacements for some standard calls, as well as some additional functions
for handling linked lists, etc. The replacement functions are used to
increase GTK's portability, as some of the functions implemented here are
not available or are nonstandard on other unixes such as
<tt class="function">g_strerror</tt>(). Some also contain enhancements to the
libc versions, such as <tt class="function">g_malloc</tt> that has enhanced
debugging utilities.</p><p>In version 2.0, GLib has picked up the type system which forms the
foundation for GTK's class hierarchy, the signal system which is used
throughout GTK, a thread API which abstracts the different native thread
APIs of the various platforms and a facility for loading modules.</p><p>As the last component, GTK uses the Pango library for
internationalized text output.</p><p>This tutorial describes the Python interface to GTK+ and is based
on the GTK+ 2.0 Tutorial written by Tony Gale and Ian Main. This tutorial
attempts to document as much as possible of PyGTK, but is by no means
complete.</p><p>This tutorial assumes some understanding of Python, and how to
create and run Python programs. If you are not familiar with Python, please
read the <a href="http://www.python.org/doc/current/tut/tut.html" target="_top">Python
Tutorial</a> first. This tutorial does not assume an understanding of
GTK; if you are learning PyGTK to learn GTK, please comment on how you found
this tutorial, and what you had trouble with. This tutorial does not
describe how to compile or install Python, GTK+ or PyGTK.</p><p>This tutorial is based on:</p><div class="itemizedlist"><ul type="disc"><li>GTK+ 2.0 through GTK+ 2.4</li><li>Python 2.2</li><li>PyGTK 2.0 through PyGTK 2.4</li></ul></div><p>The examples were written and tested on a RedHat 9.0 system.</p><p>This document is a "work in progress". Please look for updates on
<a href="http://www.pygtk.org/pygtktutorial" target="_top">www.pygtk.org</a>.</p><p>I would very much like to hear of any problems you have learning PyGTK
from this document, and would appreciate input as to how it may be improved.
Please see the section on Contributing for further information. If you
encounter bugs please file a bug at <a href="http://bugzilla.gnome.org" target="_top">bugzilla.gnome.org</a> against the pygtk
project. The information at <a href="http://www.pygtk.org/feedback.html" target="_top">www.pygtk.org</a> about
Bugzilla may help.</p><p>The PyGTK 2.0 Reference Manual is available at
<a href="http://www.pygtk.org/pygtkreference" target="_top">http://www.pygtk.org/pygtkreference</a>. It describes in detail the PyGTK classes.</p><p>The PyGTK website (<a href="http://www.pygtk.org" target="_top">www.pygtk.org</a>) contains other resources
useful for learning about PyGTK including a link to the extensive <a href="http://www.async.com.br/faq/pygtk/" target="_top">FAQ</a> and other articles and
tutorials and an active maillist and IRC channel (see <a href="http://www.pygtk.org/feedback.html" target="_top">www.pygtk.org</a> for
details).</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec-ExploringPygtk"></a>1.1. Exploring PyGTK</h2></div></div><div></div></div><p>Johan Dahlin has written a small Python program (<a href="examples/pygtkconsole.py" target="_top"><span><b class="command">pygtkconsole.py</b></span></a>)
that runs on Linux and allows interactive exploration of PyGTK. The program
provides a Python-like interactive interpreter interface that communicates
with a child process that executes that entered commands. The PyGTK modules
are loaded by default. A simple example session is:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">
<tt class="prompt">  moe: 96:1095$</tt> <span><b class="command">pygtkconsole.py</b></span>
  Python 2.2.2, PyGTK 1.99.14 (Gtk+ 2.0.6)
  Interactive console to manipulate GTK+ widgets.
  &gt;&gt;&gt; w=Window()
  &gt;&gt;&gt; b=Button('Hello')
  &gt;&gt;&gt; w.add(b)
  &gt;&gt;&gt; def hello(b):
  ...     print "Hello, World!"
  ... 
  &gt;&gt;&gt; b.connect('clicked', hello)
  5
  &gt;&gt;&gt; w.show_all()
  &gt;&gt;&gt; Hello, World!
  Hello, World!
  Hello, World!
  
  &gt;&gt;&gt; b.set_label("Hi There")
  &gt;&gt;&gt; 
</pre></td></tr></table><p>This creates a window containing a button which prints a message
('Hello, World!') when clicked. This program makes it easy to try out
various GTK widgets and PyGTK interfaces.</p><p>I also use a program that was developed by Brian McErlean as
<a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109" target="_top">ActiveState
recipe 65109</a> with some mods to make it run with PyGTK 2.X. I call it
<a href="examples/gpython.py" target="_top"><span><b class="command">gpython.py</b></span></a>. It
works similar to the <a href="examples/pygtkconsole.py" target="_top"><span><b class="command">pygtkconsole.py</b></span></a>
program.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Both of these programs are known not to work on Microsoft
Windows because they rely on Unix specific interfaces.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch-GettingStarted.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">PyGTK 2.0 Tutorial </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Getting Started</td></tr></table></div></body></html>