theKompany.com
Navigation -> ProductsEmbeddedTKCGearServicesSupportAbout UsProjectsPress & Media


Overview : Aethera : kamera : KDB : KDE Studio : Kivio : Korelib : Kugar : MARS : tkJabber
VeePee


VeePee: Overview

Location / Home / Projects / VeePee / Overview

Components

VeePee is made up of the following components.

  • A set of C++ header files that define the KDE application API.
  • A library that implements the KDE application API.
  • A set of C header files that define the GNOME application API.
  • A library that implements the GNOME application API.
  • A KDE shell kvpshell that runs standalone scripts.
  • A GNOME shell gvpshell that runs standalone scripts.
  • A generic shell vpshell that runs standalone scripts under either KDE or GNOME according to the user's preferences.
  • A Python module vp.py that implements the VeePee class hierachy. It is made available to scripts automatically.
  • A Python module that implements the KDE versions of the VeePee controls. It is made available to scripts automatically.
  • A Python module that implements the GNOME versions of the VeePee controls. It is made available to scripts automatically.

A Scripter's View of VeePee

As far as the user is concerned, VeePee defines a set of Python classes. Most of these classes implement a particular GUI control. Because of the nature of the first applications to embed VeePee, more output controls have been implemented than input controls, but a full set of controls will be added over time.

A signal/slot mechanism is used to communicate between controls. Signals can be connected to either a Python function or class method. The control that emits a signal has no knowledge of what, if anything, the signal is connected to.

Controls have a defined set of properties which determine the appearence and behaviour of the control. Properties can be set when the property is created, and be subsequently changed as the following code fragment demonstrates.

# Create a label.
lab = vp.Label(parent,text = 'The initial text')

# Print the current label text.
print lab.text

# Set some new text.
lab.text = 'Some new text'

See the file `controls.txt' in the `doc' sub-directory of the distribution for a description of all the available controls, their properties and signals.

Embedding VeePee

Embedding VeePee in your application can be as simple as an API call to create a Python interpreter and an API call to execute a script in the interpreter. Link in the relevant application API library, and that's it.

You may also use the API to do the following.

  • Define some initial arguments to the script.
  • Define a set of signals that your application can use to communicate with a script.
  • Emit a signal (with any Python object as an argument) to a script.
  • Define one or more widgets within your application that scripts use as a container for any controls they create themselves.
  • Run multiple scripts in the same interpreter, or run scripts in different interpreters.

See the files `KDEapi.txt' and `GNOMEapi.txt' in the `doc' sub-directory of the distribution for a description of the full APIs.

Adding Application Specific Functionality

Most applications will want to expose some of their own functionality to the user. To do this the application developer must implement a Python extension module. Normally you would use one of the existing Python bindings generators (SIP for C++ and SWIG for C) to automate as much of this process as possible.

The VeePee application APIs provide a mechanism for automatically making the application specific module available to scripts.

 



More information about VeePee

Introduction

Overview

Screenshots

Roadmap/FAQ

Change Log

Download

Items in cart: 0
Total amount: US$ 0.00

Show cart contents

Proceed to checkout


Home

Contact us

Back to Top


Home : Products : Embedded : TKCGear : Services : Support : About Us : Projects : Press & Media
Comments about the website? Contact the webmaster.

Copyright © 2008 theKompany.com. All rights reserved.
Website design from Grantham Design.
Programming from Grantham Design and Alessandro Praduroux.