Giter Site home page Giter Site logo

pysmoke's Introduction

PySmoke

https://travis-ci.org/pankajp/pysmoke.svg?branch=master

This project is a python binding to the Smoke library, which is a C++ library to make it simpler to create bindings for C++ libraries in other languages. Smoke is developed by KDE developers and currently is used in KDE to generate bindings fo Qt and KDE libraries in various languages such as perl, ruby, lisp etc.

The PySmoke project aims to provide a python for smoke library and also a C API for the same so that it is simpler to interface directlty with other languages which provide a C API without having to write C++ code.

The initial goal of the PySmoke project is to generate python bindings for qt using smoke, which reside in the pysmoke python package.

Installation

Prerequisites

PySmoke depends on Qt and smoke as runtime dependencies, along with the cffi python package. The build process also needs setuptools, cmake and a decent C++ compiler.

Installing

Currently, only in-tree development installation is supported:

cmake .
make
python setup.py develop

In future we may improve the installation process to be more flexible and provide binary eggs for various platforms.

Usage

from pysmoke.QtCore import SIGNAL, SLOT
from pysmoke import QtGui
qapp = QtGui.QApplication(['Hello, PySmoke!!!'])
b = QtGui.QPushButton()
b.setText('Exit App')
b.show()
qapp.connect(b, SIGNAL('clicked()'), SLOT('quit()'))
qapp.exec_()

Contributing

We welcome all contributions into the project, from bug reports feature requests to documentation, code and build scripts.

TODO

The following are major areas of work remaining:

  • Binding Signals-Slots and Properties
  • Binding enums, nested classes and namespaces
  • Binding operators (<,>,==,iteration etc)
  • Binding thngs not implemented in Smoke (QString like classes, templates)
  • Qt5 strategy
  • Fixing issues w/ pypy (segfaults)
  • Figure out memory management
  • More examples, documentation and tests
  • Better build support
  • Compatibility with PySide/PyQt4 code out there

License

The contents of this project are licensed under the terms of the MIT License found in the file COPYING at the root of the project and also at http://opensource.org/licenses/MIT

pysmoke's People

Contributors

pankajp avatar

Stargazers

Puneeth Chaganti avatar Ethan Smith avatar  avatar Haiyami avatar Anderson Bravalheri avatar  avatar

Watchers

Michael Neumann avatar Deke Kincaid avatar  avatar James Cloos avatar  avatar Ethan Smith avatar

Forkers

jpe

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.