2009-03-22 10 views
7

Sto scrivendo front end di modifica in Python da diversi anni, e sono stufo di micromanaging ogni dettaglio dell'interfaccia utente di una finestra o di un dialogo ogni volta.Esiste una libreria Python che consente di creare interfacce utente senza scrivere molto codice?

Esiste una tecnologia che consente, ad esempio, di specificare le relazioni tra un'interfaccia progettata da GTK + Glade e le tabelle e i record di un database SQLite per eseguire tutte le attività di middle man? Dovrebbe risparmiarmi il lavoro di scrivere manualmente i gestori di eventi, inserire i valutatori e visualizzare gli aggiornamenti.

Le tecnologie in questione sono solo esempi, ma voglio restare con Python il più lontano possibile.

+0

Ulteriori informazioni, alcuni mesi dopo aver posto questa domanda: Ho sviluppato la mia soluzione per il problema sottostante alla domanda precedente. Ecco il sommario del progetto: "Datenwerk è una libreria C con licenza MIT per GNU/Linux e Windows con l'obiettivo di fornire un'API dati/modello per applicazioni che richiedono un modello/modello di visualizzazione/controller. , grafica vettoriale, editor di scene, video e giochi. Sono inclusi i collegamenti per Python. ". Il progetto si trova all'indirizzo https://bitbucket.org/paniq/datenwerk – paniq

risposta

5

Oltre a quelli già citati posso aggiungere:

non ho mai utilizzato uno di loro in modo da non avere raccomandazioni ma, per quello che vale, ho usato almeno 2 complessi programmi costruiti direttamente su pygtk che funzionava sia in Windows che in Linux.

Penso che Kiwi sia l'unico di questi con supporto per db (tramite interfaccia con SQLAlchemy, SQLObject o Storm) ma sarei sorpreso se non si potesse usare uno di quegli ORM all'interno degli altri quadri.

+0

kiwi offre praticamente la funzionalità che stavo descrivendo, grazie mille. – paniq

4

PyQt e i suoi modelli possono automatizzare alcune di queste attività per voi (per un certo importo fuori rotta, ad esempio riempiendo i widget con i dati di un database e gestendo la maggior parte del comportamento dei widget, buffering ecc.).

Se si desidera un approccio più orientato agli oggetti per la gestione di SQL, è possibile esaminare una soluzione orientata all'ORM (ad esempio SQLAlchemy).

+0

Beh, spero che se la libreria X sta facendo quello che ho descritto, non avrò nemmeno bisogno di usare SQLAlchemy molto. Daremo un'occhiata a PyQt, preferirei comunque Gtk +, per il fattore di natività di Ubuntu. – paniq

+0

Per la natività di Gnome, vuoi dire ... potresti sempre passare a KDE se volevi che le app di Qt sembrassero più native ;-) (scherzando, sorta di) –

1

wxGlade può aiutare, anche se non l'ho usato da solo, quindi non parlo per esperienza.

Boa Constructor a quanto pare ha un builder GUI wxPython in esso, e c'è anche PythonCard, anche se lo sviluppo su questi due progetti sembra essersi fermato.

4

Dabo è costruito su wxPython, quindi potresti non preferirlo, ma è progettato per rendere più semplice legare una GUI a un database, quindi ti consiglio di controllarlo se non lo hai già fatto. In particolare, ha buone strutture per legare i widget ai dati e gestire molti dei casi più comuni di sviluppo della GUI.

+0

Stavo cercando qualcosa di simile, grazie per il link! –

1

I tratti potrebbero essere una buona opzione per voi. http://code.enthought.com/projects/traits/docs/html/TUIUG/index.html

tanto semplice quanto è quello di mappare un utente per un oggetto, non sembra troppo esagerato per incorporare SQLAlchemy per la persistenza.

+0

interessante. hai qualche esperienza personale con questa libreria? a prima vista sembra che in realtà non faccia altro che occuparsi di pulizie aristocratiche. ma continuo a leggere – paniq

+0

okay ho dato un'occhiata a questo. il concetto è certamente interessante, ma sembra che la parte UI non sia molto profonda, almeno a giudicare dal manuale. – paniq

+0

La mia esperienza con esso è piuttosto leggera. L'ho menzionato qui perché ho avuto le stesse domande che avevo quando mi sono imbattuto in esso un paio di mesi fa. Questo ppt sembra immergersi più in profondità nella capacità dell'interfaccia utente di Trits http://tinyurl.com/d4rwhp –

0

Ho avuto un sacco di successo con wxPython, ma che è stato alcuni anni fa e ci possono essere migliori soluzioni nuove ...

1

C'è un buon libro su wxPython, "wxPython in azione", che puo' Si può dire per alcune delle altre soluzioni. Nessun colpo agli altri.Ho avuto successo nello sviluppo con wxPython in passato e viene fornito con un grande set di applicazioni demo con codice sorgente da cui puoi prendere a prestito liberamente.

Il miglior designer UI che ho trovato per le applicazioni wxPython è commerciale, Anthemion DialogBlocks. È di uno dei programmatori wxPython e vale i soldi. Altre soluzioni per la progettazione dell'interfaccia utente includono wxGlade (l'ho trovato utilizzabile ma non funzionale) e Boa Constructor (non l'ho usato). Wing IDE potrebbe anche averne uno. Credo che l'editor Python di Stani comprenda wxGlade. Ci sono molti altri progetti che non funzionano o sono piuttosto vecchi.

Per quanto riguarda l'automazione SQL, come dice un altro rispondente, guarderei l'alchimia SQL, ma la curva di apprendimento per una piccola applicazione potrebbe essere troppo e staresti meglio andando direttamente a odbc. Il migliore odbc api è quello usato da Django, pyodbc.

È da un po 'che non mi sono sviluppato con questi strumenti, quindi potrebbe esserci qualcosa di più nuovo per ognuno, ma a mio avviso questi erano sicuramente i migliori di razza.

0

Ok questa è una soluzione non convenzionale ma scriviti un generatore di codice. L'ho fatto più volte usando Mako. Quindi nel mio caso ispeziono automaticamente una tabella con le colonne che contiene e digita e genera classi da quella. È più lavoro in anticipo, ma fa esattamente quello che vuoi ed è riutilizzabile nei progetti successivi.

Problemi correlati