This is a tool to help you develop desktop applications using Python Qt bindings of your choice for the 'front end' with django ORM for the backend.

Now also available as a VScode extension

Tested with PyQt5.11 and Django 2.1 on Ubuntu 18.4 and windows 10

Note that you need PyQt5 and Django to be already installed


Clone the repo then run:


sudo python3


Open a cmd or a ps as admin and run python3


Start new project using

pyqt-admin --startproject proj_name destination

Project Structure:

├── apps  -> where django apps go
├── forms -> where Qt *.ui files go
├── resources -> where Qt *.qrc files and assets(images, fonts, ...) go
├── viewManagers -> your views controllers go here
├── views -> where pyuic5 & pyrcc5 generated *.py files go
├── -> start point for your application
├── config.json

Edit config.json to change the binding i.e (PyQt4, PyQt4, PySide or PySide2) PyQt5 by default.

set django to false to only use qt with the same commands.

Edit hidden-imports to add imports for pyinstaller

Django Commands

Create a new django app inside the apps directory

python3 startapp appname appname2

Add appName to INSTALLED_APPS in

INSTALLED_APPS = ["apps.appname",]

To prepare models migrations

python3 makemigrations [app1, app2, ...]

To migrate your models

python3 migrate [appname, appname2, ...]

Note that leaving apps blank will try to migrate all apps

To use other django commands

python3 command

Qt Commands

Convert *.ui files to .py files using uic command

python3 uic [file1.ui, file2.ui]

Note that leaving files blank will compile all UI files inside forms directory

Convert *.qrc files to .py files using rcc

python3 rcc [file1.ui, file2.ui]

Using Pyinstaller

python3 deploy

Start coding !

Now you can start using django (models, authentication, ... ) inside your application

Known Issues