Rapid GUI Application Development with Python



Similar documents
GUI application set up using QT designer. Sana Siddique. Team 5

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

Writing standalone Qt & Python applications for Android

PyQt for Desktop and Embedded Devices

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

A Modular Approach to Teaching Mobile APPS Development

David Boddie. PyCon UK 2007, Birmingham

Image Management Suite. Mini Thesis. Roland Foster. Supervisors: Mr. Mehrdad Ghaziasgar and Mr. James Connan. B.Sc. Honours

Rapid Application Development with GNOME and Python

An Open Source SCADA Toolkit

Mobile Development with Qt

Software Development Kit

Running a Program on an AVD

-Android 2.3 is the most used version of Android on the market today with almost 60% of all Android devices running 2.3 Gingerbread -Winner of

DatabaseExplorer - Open Source Database Management Tool

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Python programming GUI

A Ground Control Station for Multi- Vehicular Data Visualization and Control

Building a Python Plugin

Building Custom GIS Applications using Open-Source Toolkits A Case Study

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

Multiprocess System for Virtual Instruments in Python

Aura: A Multi-Featured Programming Framework in Python

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

Some Experiences With Python For Android (Py4A) Nik Klever University of Applied Sciences Augsburg

Architecture, Design and Implementation of a Mathematical Derivation Editor. Johannes Eriksson

DEVELOPING AND IMPLEMENTING MULTIUSER, FULLY RELATIONAL GIS DATABASE FOR DESKTOP SYSTEMS USING OPEN SOURCE TECHNOLOGIES

rich mobile applications made easy

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Main Bullet #1 Main Bullet #2 Main Bullet #3

Oracle Application Express MS Access on Steroids

IBM Rational Web Developer for WebSphere Software Version 6.0

New 11g Features in Oracle Developer Tools for Visual Studio. An Oracle White Paper January 2008

a division of Technical Overview Xenos Enterprise Server 2.0

How To Develop Android On Your Computer Or Tablet Or Phone

Triple-E class Continuous Delivery

HEP data analysis using jhepwork and Java

Summer Project Report. Fingerprint Based Attendance System

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Avaya Aura Orchestration Designer

Using EDA Databases: Milkyway & OpenAccess

Open source framework for interactive data exploration in server based architecture

A little code goes a long way Cross-platform game development with Lua. Ivan Beliy, Software Engineer

Porting a Python Program to Android

Overview. Open source toolchains. Buildroot features. Development process

KIVY - A Framework for Natural User Interfaces

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

Practical Eclipse Rich Client Platform Projects

Constructing Kirq, software for set-theoretic social research: A software development travelogue

MSWL Development & Tool. Eclipse IDE

Database Extension 1.5 ez Publish Extension Manual

Selecting the Right Change Management Solution Key Factors to Consider When Evaluating Change Management Tools for Your Databases and Teams

Python for Series 60 Platform

Quick start. A project with SpagoBI 3.x

Rapid SQL XE Product Reviewer Guide

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

Application Development With Data Studio

Android: How To. Thanks. Aman Nijhawan

Andreas Burghart 6 October 2014 v1.0

Surface and Volumetric Data Rendering and Visualisation

... Introduction... 17

Application Development for Mobile and Ubiquitous Computing

Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is

Mobile application development with QML & PySide

Cross-Platform Mobile Apps Solution

Authoring for System Center 2012 Operations Manager

SOFTWARE TESTING TRAINING COURSES CONTENTS

How to Design and Create Your Own Custom Ext Rep

Cross-platform development of smartphone application with the Kivy framework Bc. Ondřej Chrastina

How To Write An Ria Application

Programming Mobile Apps with Python

MayaVi: A free tool for CFD data visualization

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia

Windows Presentation Foundation (WPF)

Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development

IDL. Get the answers you need from your data. IDL

Database Forms and Reports Tutorial

UltraFlow -Cisco Netflow tools-

Upgrading a Visual Basic Application to.net:

OpenCobolIDE Documentation

TUTORIAL ECLIPSE CLASSIC VERSION: ON SETTING UP OPENERP 6.1 SOURCE CODE UNDER WINDOWS PLATFORM. by Pir Khurram Rashdi

Practical Android Projects Lucas Jordan Pieter Greyling

ADMINISTRATOR'S GUIDE. Version 12.20

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6<6725$*

Easing embedded Linux software development for SBCs

Rational Developer for IBM i (RDi) Introduction to RDi

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

Transcription:

Rapid GUI Application Development with Python Volker Kuhlmann Kiwi PyCon 2009 Christchurch 7 November 2009 Copyright 2009 by Volker Kuhlmann Released under Creative Commons Attribution Non-commercial Share-alike 3.0 http://volker.top.geek.nz/linux/presentation/rapidguiwithpython.pdf Volker Kuhlmann Rapid GUI Application Development with Python 1/17

Introduction Make a GUI desktop application Application often is means to an end, not the end itself The quicker the better... What is needed to do this? Volker Kuhlmann Rapid GUI Application Development with Python 2/17

Overview Python interpreter GUI toolkit IDE GUI builder Debugger Database Testing Application packaging Looking over the fence Summary Future Volker Kuhlmann Rapid GUI Application Development with Python 3/17

Python interpreter Install stable release for your platform Already packaged up Current stable versions 2.6, 3.1 3.x is not totally backwards compatible Volker Kuhlmann Rapid GUI Application Development with Python 4/17

GUI toolkit Provides graphical user interface elements (widgets) Buttons, scrollbars, text boxes Tree view lists File-open dialogs... Many of these available as system library Best known: GTK, Qt Some platforms only provide a single built-in one Python wrapper needed for use with Python Understanding of the toolkit itself needed to some extent Volker Kuhlmann Rapid GUI Application Development with Python 5/17

Python GUI toolkit choices Tkinter Built into Python on all platforms Free. Well-aged, limited, somewhat basic. Universally available. wxpython Free, stable, cross-platform, large number of widgets PyGTK Free, stable, cross-platform PyQt Free only for GPL ed applications (Qt LGPL since 4.5) Stable, cross-platform, very advanced; HTML-rendering in text boxes PySide Free replacement for PyQt, new, not yet mature, sponsored by Nokia. Others not first choice in general Volker Kuhlmann Rapid GUI Application Development with Python 6/17

IDE Kind of a workbench Editor of course Code completion Calltips Integrating: Documentation Debugger Hover over variable to inspect value Code profiler Report generators Code + DB structures Documentation Revision control system interface Volker Kuhlmann Rapid GUI Application Development with Python 7/17

IDE choices Eclipse / PyDev FOSS, well supported BoaConstructor Eric With GUI builder With GUI builder (Qt Designer) Wing IDE commercial (free for established FOSS projects) Komodo commercial Spyder Aimed at science users Emacs/vim Volker Kuhlmann Rapid GUI Application Development with Python 8/17

GUI Builder Use a GUI to design a GUI wxpython PyGTK BoaConstructor XRCed XML editor, fast results with good knowledge of wxpython WxDesigner (commercial) wxglade / Autoglade Gazpacho PyQt / PySIDE Qt Designer Mature, well-designed Integrated with Eric Volker Kuhlmann Rapid GUI Application Development with Python 9/17

Debugger Integrated into IDEs: Eclipse/PyDev FOSS Komodo, Wing IDE Stand-alone: winpdb ddd GUI to command line debuggers, incl. pydb http://winpdb.org/about GUI to command line debuggers, incl. pydb Very good GPL, Unix/Linux only Volker Kuhlmann Rapid GUI Application Development with Python 10/17

Database Bindings exist to interface to a number of databases SQLite Small, embedded or single program, lightweight MySQL, PostgreSQL DBs need to be set up separately, heavy duty Uniform Python SQL database API Higher-level abstraction layer desirable No need to write and debug SQL code buzhug pure Python DB implementation Slow, but Python-like interface, no SQL Volker Kuhlmann Rapid GUI Application Development with Python 11/17

Testing Large number of stand-alone solutions for different purposes and methodologies Unit testing, black box/white box testing Extensive overview: http://pycheesecake.org/wiki/ PythonTestingToolsTaxonomy Volker Kuhlmann Rapid GUI Application Development with Python 12/17

Application packaging setuptools Use Python interpreter to package up, and install, Python modules. Not under system package manager control. Needs privileges to install for all users. Platform-independent. Package for the system package handler (e.g. rpm, deb) Tedious Platform-specific Only on some platforms Executable installer Security risks? Platform-specific Only on some platforms Volker Kuhlmann Rapid GUI Application Development with Python 13/17

Looking over the fence Always good to see what others are up to Fully integrated IDEs with all mentioned features are available for $x00. Not for Python though... Volker Kuhlmann Rapid GUI Application Development with Python 14/17

Summary Choose GUI toolkit and IDE carefully Toolkit suitability for target application Toolkit license IDE feature set Consider commercial options Good-looking native applications can be made with a scripting language Installing the full tool chain is tedious Finding out and deciding what is needed takes too long Consider commercial options for part(s) of the tool chain Volker Kuhlmann Rapid GUI Application Development with Python 15/17

Future Desirable: Better integration of tool chain Tool improvements Volker Kuhlmann Rapid GUI Application Development with Python 16/17

References / Reading Polo, Guilherme: PyGTK, PyQt, Tkinter and wxpython comparison. The Python Papers, Volume 3 Issue 1, pp 26ff. Hetland, Magnus L.: Beginning Python. From Novice to Professional. 2nd ed. Apress. Good for learning Python programming. Summerfield, Mark: Rapid GUI Programming with Python and QT. Prentice Hall. Guide, by a Qt developer. (Could be clearer written.) http://python.org/ Lists available software by categories Wikipedia (for IDEs, GUI toolkits, etc) Your favourite search engine Volker Kuhlmann Rapid GUI Application Development with Python 17/17