[Python] soluzione gtk/sqlkit
Alessandro Dentella
sandro a e-den.it
Lun 26 Apr 2010 15:23:20 CEST
On Mon, Apr 26, 2010 at 12:02:53PM +0200, Nicola Larosa wrote:
> > Giovanni Porcari wrote:
> >> Per quello che riguarda la richiesta di una versione offline è nelle
> >> nostre intenzioni il fatto di creare un eseguibile multipiattaforma
> >> (eventualmente da usare su chiavetta USB) che incorpori un server
> >> wsgi (noi usiamo paste) mentre per il db vorremmo usare sqlite.
>
> Marco Giusti wrote:
> > perché non creare una micro applicazione con gtk (o tk) e sqlite? non
> > avrà lo stesso sex appeal di genropy, ma usare un web server per
> > un'applicazione così piccola mi sembra un po' sproporzionato. inoltre
> > con pyinstaller si crea facilmente un eseguibile e il gioco è fatto.
>
> Ottima idea, facci sapere quando hai fatto, grazie. ;-)
propongo qui 2 soluzioni con sqlkit [1]. La prima richiede 3 click in più per
arrivare ad avere quello che ha proposto Giovanni, usa 'sqledit' l'eseguibile
che viene distribuito assieme a sqlkit. Da riga di comando le configurazioni
sono quindi limitate ed i filti vanno aggiunti a mano (i famosi 3
click). Potete vedere l'effetto qui: http://www.e-den.it/misc/med.mpeg
ho preparato un db di sqlite con i codici: med.sqlite reperibile qui [2]
sqledit via pyinstaller
-----------------------
Partiamo dal boundle fatto con pyinstaller::
$ wget -q http://www.e-den.it/misc/med.sqlite
$ wget -q http://sqlkit.argolinux.org/download/sqledit-binary-0.8.6.tar.gz
$ tar xzf sqledit-binary-0.8.6.tar.gz
$ ./sqledit-0.8.6/sqledit sqlite:///med.sqlite codici --load
A questo punto vi si apre una tabella con le due colonne. L'intestazione è
cliccabile, nel menu dropdown la prima voce è "aggiungi un filtro" come
mostrato qui http://sqlkit.argolinux.org/sqlkit/filters.html.
Se usate Windows potete scaricare l'installer per Windows [3], e lanciare da
riga di comando (la medesima salvo i path) o usare la gui e mettere il path
del database sqlite nella forma sqlite:///C:/Docments and settings/.../med.sqlite
sqlkit da python
----------------
Questa è la modalità più flessibile, ma prevede che abbiate installato
sqlkit. Il programma si riduce a::
#!/usr/bin/python
import gtk
import sys
import sqlkit
from sqlkit import widgets as skw
DB_FILE = '/home/sandro/med.sqlite'
db = sqlkit.DbProxy(bind="sqlite:///%s" % DB_FILE)
m = skw.SqlTable(table='codici', dbproxy=db)
for tk in sys.argv[1:]:
m.add_filter(descr__icontains=tk)
m.add_filter(cod__ilike="")
m.reload()
gtk.main()
che apre già un filtro sulla descrizione per ogni argomento, supponendo
salviate il codice in med.py:
./med.py frat fem
Vi apre la lista di tutti i codici esattamente come proposto da Giovanni.
Se invece volete comunque aprire i filtri anche se vuoti, in modo da
risparmiare anche i click:
m.add_filter(descr__icontains='')
m.add_filter(descr__icontains='')
sandro
*:-)
[1] http://sqlkit.argolinux.org/index.html
[2] http://www.e-den.it/misc/med.sqlite
[3] http://sqlkit.argolinux.org/download/sqledit-setup-0.8.6.1.exe
--
Sandro Dentella *:-)
http://sqlkit.argolinux.org SQLkit home page - PyGTK/python/sqlalchemy
Maggiori informazioni sulla lista
Python