

.. _sphx_glr_gallery_user_interfaces_embedding_in_qt4_wtoolbar_sgskip.py:


=========================
Embedding In QT4 Wtoolbar
=========================




.. code-block:: python

    from __future__ import print_function

    import sys

    import numpy as np

    import matplotlib
    matplotlib.use("Qt4Agg")
    from matplotlib.backend_bases import key_press_handler
    from matplotlib.backends.backend_qt4agg import (
        FigureCanvasQTAgg as FigureCanvas,
        NavigationToolbar2QT as NavigationToolbar)
    from matplotlib.backends.qt_compat import QtCore, QtGui
    from matplotlib.figure import Figure


    class AppForm(QtGui.QMainWindow):
        def __init__(self, parent=None):
            QtGui.QMainWindow.__init__(self, parent)
            self.data = self.get_data2()
            self.create_main_frame()
            self.on_draw()

        def create_main_frame(self):
            self.main_frame = QtGui.QWidget()

            self.fig = Figure((5.0, 4.0), dpi=100)
            self.canvas = FigureCanvas(self.fig)
            self.canvas.setParent(self.main_frame)
            self.canvas.setFocusPolicy(QtCore.Qt.StrongFocus)
            self.canvas.setFocus()

            self.mpl_toolbar = NavigationToolbar(self.canvas, self.main_frame)

            self.canvas.mpl_connect('key_press_event', self.on_key_press)

            vbox = QtGui.QVBoxLayout()
            vbox.addWidget(self.canvas)  # the matplotlib canvas
            vbox.addWidget(self.mpl_toolbar)
            self.main_frame.setLayout(vbox)
            self.setCentralWidget(self.main_frame)

        def get_data2(self):
            return np.arange(20).reshape([4, 5]).copy()

        def on_draw(self):
            self.fig.clear()
            self.axes = self.fig.add_subplot(111)
            self.axes.imshow(self.data, interpolation='nearest')
            self.canvas.draw()

        def on_key_press(self, event):
            print('you pressed', event.key)
            # implement the default mpl key press events described at
            # http://matplotlib.org/users/navigation_toolbar.html#navigation-keyboard-shortcuts
            key_press_handler(event, self.canvas, self.mpl_toolbar)


    def main():
        app = QtGui.QApplication(sys.argv)
        form = AppForm()
        form.show()
        app.exec_()


    if __name__ == "__main__":
        main()

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



.. container:: sphx-glr-footer


  .. container:: sphx-glr-download

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



  .. container:: sphx-glr-download

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

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

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