Author: Colin Duquesnoy


        Python/Qt Code Editor Widget library

.. image::
    :alt: Travis-CI build status

.. image::
    :alt: Number of PyPI downloads

.. image::
    :alt: Latest PyPI version

.. image:: 
    :alt: 'Stories in Ready'

What is pyQode?

pyQode is a *flexible source code editor widget* for Python Qt
applications. **pyQode is a library/widget, not an IDE**. You can see it as an
alternative to QScintilla.

pyQode is a **namespace package** made up of the following official packages:

  - `pyqode.core`_: core package

  - `pyqode.python`_: python support (code completion, ...)

  - `pyqode.widgets`_: useful widgets for pyqode apps

  - `pyqode.designer`_: Starts Qt designer with all pyqode plugins

.. _pyqode.core:
.. _pyqode.python:
.. _pyqode.widgets:
.. _pyqode.designer:

**pyqode.core** is the foundation package, it contains the pyqode base classes (QCodeEdit, Mode, Panel) 
and a set of builtin modes and panels that are useful for any kind of code editor. With pyqode.core you 
can already create a generic code editor (similar to gedit, notepad++) with only a few lines of code.


Here are the core features:

-  supports PySide and/or PyQt4
-  supports Python 2 and/or Python 3
-  simple widget based on QPlainTextEdit
-  easily customisable (modes and panels)
-  native look and feel close to Qt creator
-  builtin modes and panels (folding, line number, code completion,
   syntax highlighting)
-  Qt Designer plugin


pyQode is licensed under the MIT license.


pyqode.core depends on the following libraries:

-  Python 2.7 or Python 3 (>= 3.2)
-  PyQt4 or PySide
-  pygments

You need to install PyQt4 or PySide by yourself.

Then you can install pyqode using pip::

    $ pip install pyqode.core


The *public API* is exposed by the *pyqode.core* package.

Here is a `simple example using PyQt4`_:

.. code:: python

    # simple example using PyQt4
    import sys
    import PyQt4  # just to tell pyqode we want to use PyQt4.
    import pyqode.core
    from PyQt4.QtGui import QApplication

    def main():
        app = QApplication(sys.argv)
        editor = pyqode.core.QGenericCodeEdit()
        editor.resize(800, 600)
        return app.exec_()

    if __name__ == "__main__":

.. _simple example using PyQt4:


-  `Downloads`_
-  `Source repository`_
-  `Documentation`_
-  `Wiki`_

.. _Downloads:
.. _Source repository:
.. _Documentation:
.. _Wiki:


Here are a few screenshots of the gui integration example on several different platforms:

* Windows 7:

.. image::
    :alt: Windows 7
* Ubuntu:

.. image::
    :alt: Ubuntu
* Linux Mint:

.. image::
    :alt: Linux mint
* KDE:

.. image::
    :alt: KDE
* KDE with a dark color scheme:

.. im