Domanda

Ho una piccola esperienza nello sviluppo di piccole applicazioni da riga di comando con Python. Voglio passare allo sviluppo di GUI con Python. Dai toolkit GUI disponibili per Python, quelli a cui mi sento maggiormente incline sono wxPython e Tkinter ; ma non voglio codificare tutta la GUI da solo per tutto il tempo.

Esistono buoni IDE GUI per uno di questi toolkit? Non deve essere gratuito o open source.

È stato utile?

Soluzione

Parlerò solo di WxPython perché è l'unico toolkit con cui ho esperienza. TkInter è bello scrivere piccoli programmi (quindi non richiede un GUI Designer), ma non è davvero appropriato per lo sviluppo di applicazioni di grandi dimensioni.

  • wxFormBuilder è davvero buono: genera file .XRC che devi caricare nel tuo programma e può generare file .py eseguendo la sottoclasse di questi quando li usi.

  • DialogBlocks e wxDesigner sono due software commerciali che possono generare direttamente il codice Python. Non li ho testati molto a causa del loro prezzo.

  • wxGlade non è (penso) abbastanza maturo per programmi di grandi dimensioni, ma vale la pena provare.

Dopo aver provato tutti questi, mi sono reso conto che avevano tutti i difetti e che niente è meglio che scrivere semplicemente la GUI in un editor. Il problema è la curva di apprendimento estesa. Ma poi sarai molto più veloce e il tuo codice sarà molto più flessibile rispetto a quando usi un designer della GUI.

Dai un'occhiata a questo elenco delle principali applicazioni scritto con wxPython. Probabilmente vedrai che nessuno di questi usa un GUI Designer, ci deve essere un motivo per questo.

Capisci quindi che gs ha ragione quando dici che passi a PyQt o scrivi l'applicazione a mano. Ho dato un'occhiata a Qt Designer in passato e ho pensato che fosse quello di cui avevo bisogno. Sfortunatamente PyQt ha alcune restrizioni di licenza.

Altri suggerimenti

Questo potrebbe non rispondere direttamente alla tua domanda, ma ho scelto PyQt perché non c'erano buoni progettisti dell'interfaccia utente per wxPython.

Apparentemente scrivi le tue GUI manualmente o passa a PyQt.

Poiché Nokia e Riverbankcomputing non sono stati d'accordo su una soluzione LGPL, Nokia ha deciso di creare i propri binding: PySide .

Boa Constructor ha un generatore di GUI WxPython.

Uso xrced (viene fornito con wxPython). La GUI è definita in file XML, si dispone di un file Python generato automaticamente che automatizza l'inizializzazione, quindi si esegue la sottoclasse di tali classi generate automaticamente e si esegue manualmente il resto dell'inizializzazione. Trovo che questo sia un buon modo per fondere l'eleganza del codice GUI scritto a mano con la facilità di generazione del codice GUI.

Per il codice che uso WingIDE , è utile avere un buon debug e un buon completamento del codice sorgente quando gestire grandi librerie (o framework se vuoi) come wxPython.

Se vuoi una maggiore automazione (e quindi, codice più brutto) prova l'ultima versione di Boa , ci sono alcuni interessanti screencast introduttivi su ShowMeDo.com

Prova VisualWx . Penso che il progettista della GUI sia molto bravo; tuttavia l'IDE è abbastanza rudimentale (nessun completamento del codice, debug, ecc.). Il mio modello di lavoro è avere VisualWx e un buon editor come Komodo Edit / Netbeans / etc. aprire allo stesso tempo e passare da uno all'altro, se necessario.

Uso Eclipse con PyDev come mio IDE Python (che probabilmente non è la migliore soluzione là fuori, ma è abbastanza decente)

Per lo sviluppo della GUI, ho usato wxGlade per un progetto di medie dimensioni e l'ho trovato abbastanza facile da usare per aver compreso i concetti di WxPython. La generazione XML è molto utile per separare la progettazione della GUI effettiva dalla logica del programma.

Tutti questi sono gratuiti.

Ho usato wxGlade per alcune app mission-critical. Se sei un po 'debole in wx, può essere difficile, ma una volta che ti ci abitui, è un ottimo strumento.

Non proprio un IDE GUI ma ti consente di definire le GUI di Tkinter in un file JSON: https://github.com / tmetsch / pytkgen

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top