

.. _sphx_glr_gallery_user_interfaces_pylab_with_gtk_sgskip.py:


==============
Pylab With GTK
==============

An example of how to use pylab to manage your figure windows, but
modify the GUI by accessing the underlying gtk widgets



.. code-block:: python

    from __future__ import print_function
    import matplotlib
    matplotlib.use('GTKAgg')
    import matplotlib.pyplot as plt


    fig, ax = plt.subplots()
    plt.plot([1, 2, 3], 'ro-', label='easy as 1 2 3')
    plt.plot([1, 4, 9], 'gs--', label='easy as 1 2 3 squared')
    plt.legend()


    manager = plt.get_current_fig_manager()
    # you can also access the window or vbox attributes this way
    toolbar = manager.toolbar

    # now let's add a button to the toolbar
    import gtk
    next = 8  # where to insert this in the mpl toolbar
    button = gtk.Button('Click me')
    button.show()


    def clicked(button):
        print('hi mom')
    button.connect('clicked', clicked)

    toolitem = gtk.ToolItem()
    toolitem.show()
    toolitem.set_tooltip(
        toolbar.tooltips,
        'Click me for fun and profit')

    toolitem.add(button)
    toolbar.insert(toolitem, next)
    next += 1

    # now let's add a widget to the vbox
    label = gtk.Label()
    label.set_markup('Drag mouse over axes for position')
    label.show()
    vbox = manager.vbox
    vbox.pack_start(label, False, False)
    vbox.reorder_child(manager.toolbar, -1)


    def update(event):
        if event.xdata is None:
            label.set_markup('Drag mouse over axes for position')
        else:
            label.set_markup('<span color="#ef0000">x,y=(%f, %f)</span>' % (event.xdata, event.ydata))

    plt.connect('motion_notify_event', update)

    plt.show()

**Total running time of the script:** ( 0 minutes  0.000 seconds)



.. only :: html

 .. container:: sphx-glr-footer


  .. container:: sphx-glr-download

     :download:`Download Python source code: pylab_with_gtk_sgskip.py <pylab_with_gtk_sgskip.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: pylab_with_gtk_sgskip.ipynb <pylab_with_gtk_sgskip.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.readthedocs.io>`_
