<?xml version='1.0' encoding='UTF-8'?>
<page xmlns="http://projectmallard.org/1.0/"
      xmlns:e="http://projectmallard.org/experimental/"
      type="guide" style="task"
      id="tutorial.py">

<info>
  <title type="text">Beginner's Tutorial (Python)</title>
  <link type="guide" xref="py"/>
  <revision version="0.1" date="2012-07-31" status="draft"/>

  <desc>A tutorial for beginners who want to learn how to program GUIs using GTK+ in Python.</desc>
  <credit type="author copyright">
    <name>Tiffany Antopolski</name>
    <email>tiffany.antopolski@gmail.com</email>
    <years>2012</years>
  </credit>
  <credit type="author copyright">
    <name>Marta Maria Casetti</name>
    <email>mmcasetti@gmail.com</email>
    <years>2012</years>
  </credit>
</info>

<title>0 Beginner's Tutorial</title>

<synopsis>
 <p>By following these tutorials you will learn the basics of GUI programming using Gtk+.</p>

 <p>If you have never programmed before, or are not familiar with the concepts of object oriented programming, you may need to learn a few basics first.  The book <link href="http://learnpythonthehardway.org/book/">Learn Python the Hard Way</link> or <link href="http://docs.python.org/tutorial/index.html">The Python Tutorial</link> may be a better place for you to start. You may also be interested in <link href="http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html">The Python GTK+ 3 Tutorial</link>. Once you master the basics, be sure to come back and check out these tutorials.</p>
</synopsis>

<links type="section"/>

<section id="to-run">
<title>To run the code samples</title>

  <p>To run the code samples:</p>
  <steps>
    <item><p>Copy and paste the code into <var>filename</var>.py</p></item>
    <item><p>In the terminal type:</p>
          <screen>python <var>filename</var>.py</screen>
    </item>
  </steps>
</section>

<section id="widgets">
<title>A path through the widgets</title>
<steps>
  <title>Tutorial</title>
  <item><steps>
    <title>Basic windows</title>
    <item><p><link xref="window.py" /></p></item>
    <item><p><link xref="GtkApplicationWindow.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Images and labels</title>
    <item><p><link xref="image.py" /></p></item>
    <item><p><link xref="label.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Grid</title>
    <item><p><link xref="grid.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Ornaments</title>
    <item><p><link xref="separator.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Basic buttons</title>
    <item><p><link xref="button.py" /></p></item>
    <item><p><link xref="linkbutton.py" /></p></item>
    <item><p><link xref="checkbutton.py" /></p></item>
    <item><p><link xref="togglebutton.py" /></p></item>
    <item><p><link xref="switch.py" /></p></item>
    <item><p><link xref="radiobutton.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Other display widgets</title>
    <item><p><link xref="statusbar.py" /></p></item>
    <item><p><link xref="spinner.py" /></p></item>
    <item><p><link xref="progressbar.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Entry widgets (with a detour on basic scrolling)</title>
    <item><p><link xref="spinbutton.py" /></p></item>
    <item><p><link xref="entry.py" /></p></item>
    <item><p><link xref="scrolledwindow.py" /></p></item>
    <item><p><link xref="textview.py" /></p></item>
    <item><p><link xref="scale.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Dialogs</title>
    <item><p><link xref="dialog.py" /></p></item>
    <item><p><link xref="aboutdialog.py" /></p></item>
    <item><p><link xref="messagedialog.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>TreeViews and ComboBoxes (using the M/V/C design)</title>
    <item><p><link xref="combobox.py" /></p></item>
    <item><p><link xref="combobox_multicolumn.py" /></p></item>
    <item><p><link xref="treeview_simple_liststore.py" /></p></item>
    <item><p><link xref="treeview_advanced_liststore.py" /></p></item>
    <item><p><link xref="treeview_treestore.py" /></p></item>
    <item><p><link xref="treeview_cellrenderertoggle.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Menus and toolbars (also: using Glade)</title>
    <item><p><link xref="gmenu.py" /></p></item>
    <item><p><link xref="toolbar.py" /></p></item>
    <item><p><link xref="toolbar_builder.py" /></p></item>
    <item><p><link xref="menubar.py" /></p></item>
    <item><p><link xref="menubutton.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Selectors (a recap)</title>
    <item><p><link xref="colorbutton.py" /></p></item>
    <item><p><link xref="fontchooserwidget.py" /></p></item>
    <item><p><link xref="filechooserdialog.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>Tooltip</title>
    <item><p><link xref="tooltip.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>More containers</title>
    <item><p><link xref="paned.py" /></p></item>
    <item><p><link xref="buttonbox.py" /></p></item>
  </steps></item>
  <item><steps>
    <title>More scrolling</title>
    <item><p>"scrollbar.py"</p></item>
  </steps></item>
  <item><steps>
    <title>Custom widget</title>
    <item><p>"widget.py"</p></item>
  </steps></item>
</steps>
</section>

<section id="theory">
<title>Some theory to help you</title>

</section>

<section id="exercises">
<title>Exercises</title>
</section>


</page>
