Python

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
{{Languages}}
 
'''Python''' is a programming language which is applicable to scripting phone functionalities and graphical user interfaces. Currently, at least [[SettingsGUI]], [[SMSTool]] and [http://pavelmachek.livejournal.com/42672.html MokoMenu] use it. There is also [[Python ncurses]] for character user interfaces. [[Manually using Bluetooth]] is partially based on using Python.
 
'''Python''' is a programming language which is applicable to scripting phone functionalities and graphical user interfaces. Currently, at least [[SettingsGUI]], [[SMSTool]] and [http://pavelmachek.livejournal.com/42672.html MokoMenu] use it. There is also [[Python ncurses]] for character user interfaces. [[Manually using Bluetooth]] is partially based on using Python.
  
Line 9: Line 10:
 
  python-core python-misc python-lang python-subprocess python-threading etc.
 
  python-core python-misc python-lang python-subprocess python-threading etc.
  
Graphical applications need the following binary packages too:  
+
ETK/EFL applications need the following binary packages too:
 +
python-etk python-efl
 +
 
 +
GTK applications need the following binary packages too:  
 
  python-pygtk python-pycairo python-pygobject
 
  python-pygtk python-pycairo python-pygobject
  
Line 16: Line 20:
 
=== Missing ===
 
=== Missing ===
  
Parts of the OpenMoko platform are not available in python yet, including gconf and evolution data server. python-openmoko is in the works for [[gsmd]] access etc. A recipe for PyWebKitGtk
+
Parts of the Openmoko platform are not available in python yet, including gconf and evolution data server. python-openmoko is in the works for [[gsmd]] access etc. A recipe for PyWebKitGtk
 
is at [http://bugs.openembedded.org/show_bug.cgi?id=3028 OpenEmbedded bug #3028].
 
is at [http://bugs.openembedded.org/show_bug.cgi?id=3028 OpenEmbedded bug #3028].
  
Line 25: Line 29:
 
* [[Pexpect]] a pure Python module for spawning child applications
 
* [[Pexpect]] a pure Python module for spawning child applications
 
== Simple Example Scripts ==
 
== Simple Example Scripts ==
 +
=== Minimal ETK gui ===
 +
See also [[EFL_Documentation]] for more links and examples.
 +
<pre>
 +
import etk
 +
 +
#create a button (not yet on any window)
 +
b = etk.Button(label="Hello")
 +
 +
#create a (nonvisible) window and put the button on the window
 +
w = etk.Window(title="Hello", child=b)
 +
 +
#create a silly callback function
 +
def hello(target):
 +
  print 'Hello World'
 +
  etk.main_quit()
 +
 +
#make the button call the callback when pressed
 +
b.on_clicked(hello)
 +
 +
#make the window display
 +
w.show_all()
 +
 +
#start processing screen events
 +
etk.main()
 +
</pre>
 +
 
=== Minimal GTK gui ===
 
=== Minimal GTK gui ===
 
  import gtk
 
  import gtk
Line 39: Line 69:
 
  #create a silly callback function
 
  #create a silly callback function
 
  def hello(target):
 
  def hello(target):
  print 'Hello world'
+
    print 'Hello world'
  exit()
+
    exit()
 
   
 
   
 
  #make the button call the callback when pressed
 
  #make the button call the callback when pressed
Line 50: Line 80:
 
  #start processing screen events
 
  #start processing screen events
 
  gtk.main()
 
  gtk.main()
[[Category:Software ]]
 
  
 
[[Category:Application Developer]]
 
[[Category:Application Developer]]

Latest revision as of 11:58, 29 November 2009

Python is a programming language which is applicable to scripting phone functionalities and graphical user interfaces. Currently, at least SettingsGUI, SMSTool and MokoMenu use it. There is also Python ncurses for character user interfaces. Manually using Bluetooth is partially based on using Python.

Contents

[edit] Environment

Source packages for Python contained in OpenEmbedded include:

python python-pygtk python-pycairo python-pygobject python-dbus

Binary packages for Python are not officially built yet but at least ScaredyCat's repositories provide them:

python-core python-misc python-lang python-subprocess python-threading etc.

ETK/EFL applications need the following binary packages too:

python-etk python-efl

GTK applications need the following binary packages too:

python-pygtk python-pycairo python-pygobject
NOTE: These packages take up a considerable amount of space (several megabytes). Make sure that you have enough free space or install the packages to the media card as explained in package management.


[edit] Missing

Parts of the Openmoko platform are not available in python yet, including gconf and evolution data server. python-openmoko is in the works for gsmd access etc. A recipe for PyWebKitGtk is at OpenEmbedded bug #3028.

[edit] See also

[edit] Simple Example Scripts

[edit] Minimal ETK gui

See also EFL_Documentation for more links and examples.

import etk

#create a button (not yet on any window)
b = etk.Button(label="Hello")

#create a (nonvisible) window and put the button on the window
w = etk.Window(title="Hello", child=b)

#create a silly callback function
def hello(target):
  print 'Hello World'
  etk.main_quit()

#make the button call the callback when pressed
b.on_clicked(hello)

#make the window display
w.show_all()

#start processing screen events
etk.main()

[edit] Minimal GTK gui

import gtk

#create a (nonvisible) window 
w = gtk.Window()

#create a button (not yet on any window)
b = gtk.Button('Hello')

#put the button on the window
w.add(b)

#create a silly callback function
def hello(target):
    print 'Hello world'
    exit()

#make the button call the callback when pressed
b.connect('clicked', hello)

#make the window display
w.show_all()

#start processing screen events
gtk.main()
Personal tools

Python is a programming language which is applicable to scripting phone functionalities and graphical user interfaces. Currently, at least SettingsGUI, SMSTool and MokoMenu use it. There is also Python ncurses for character user interfaces. Manually using Bluetooth is partially based on using Python.

Environment

Source packages for Python contained in OpenEmbedded include:

python python-pygtk python-pycairo python-pygobject python-dbus

Binary packages for Python are not officially built yet but at least ScaredyCat's repositories provide them:

python-core python-misc python-lang python-subprocess python-threading etc.

Graphical applications need the following binary packages too:

python-pygtk python-pycairo python-pygobject
NOTE: These packages take up a considerable amount of space (several megabytes). Make sure that you have enough free space or install the packages to the media card as explained in package management.


Missing

Parts of the OpenMoko platform are not available in python yet, including gconf and evolution data server. python-openmoko is in the works for gsmd access etc. A recipe for PyWebKitGtk is at OpenEmbedded bug #3028.

See also

Simple Example Scripts

Minimal GTK gui

import gtk

#create a (nonvisible) window 
w = gtk.Window()

#create a button (not yet on any window)
b = gtk.Button('Hello')

#put the button on the window
w.add(b)

#create a silly callback function
def hello(target):
  print 'Hello world'
  exit()

#make the button call the callback when pressed
b.connect('clicked', hello)

#make the window display
w.show_all()

#start processing screen events
gtk.main()