2010-03-13 5 views
6

Sono un principiante con una piccola esperienza di scrittura in BASIC, Python e, di tutte le cose, una smidge di assembler (come parte di un hack ROM del videogioco). Volevo creare un piccolo strumento per modificare i valori esadecimali in punti particolari, in un particolare file, che avrebbe un'interfaccia GUI.Come novizio, dove dovrei andare se voglio creare un piccolo programma GUI?

Quello che sto cercando è la possibilità di creare un piccolo programma GUI, che posso distribuire come un file EXE (o, almeno, una directory autonoma). Non mi piace l'idea dei linguaggi .NET, perché non voglio costringere le persone a scaricare un enorme pacchetto di framework .NET. Attualmente ho Python con IDLE e Boa Constructor impostato e l'applicazione viene eseguita lì. Ho provato a cercare informazioni sulla compilazione di un'app python che si basa su Wxwidgets, ma i risultati della ricerca e le informazioni che ho trovato sono state confuse o completamente incomprensibili.

Le mie domande sono:

  1. Python è un buon linguaggio da utilizzare per questo tipo di progetto?
  2. Se utilizzo Py2Exe, WxWidgets sarà già incluso? O i miei utenti dovranno in qualche modo installare WxWidgets sulle loro macchine? Ho ragione nel pensare a Py2Exe produce solo una directory standalone, 'dist', che ha i file necessari all'utente per fare doppio clic e avviare l'applicazione?
  3. Se il programma fa semplicemente affidamento su Tkinter per elementi della GUI, sarà incluso nel file EXE Py2Exe? Se è così, sono i loro costruttori/IDE GUI 'visuali' per Python con solo Tkinter?

Grazie per il vostro tempo,

JBMK

+0

La maggior parte delle persone ha già .Net - la maggior parte delle persone non ha Python ... –

risposta

4

Si sarebbe meglio pensare/dire/googling wxPython (non wxWidgets), dal momento che wxPython è il wrapper Python per la wxWidgets C++.

1.) Python è un buon linguaggio per questo. Se hai scelto come target solo Windows, lo farei comunque in .NET/C#. Se vuoi multipiattaforma, Python/wxPython fino in fondo.

2.) Sì, i file wxPython devono essere inclusi nella directory dist. Ovviamente dovrai installare wxPython sul tuo computer di sviluppo. Vedi here per alcune istruzioni su come costruire. py2exe produce una singola directory con tutto il necessario per eseguire il programma. Ti darà un EXE che puoi fare doppio clic.

3.) Non ho mai usato Python's Tkinter con py2exe, ma non riesco a capire perché non funzionerebbe secondo le linee di wxPython.

Si dovrebbe ricordare che la directory finalmente distribuibile sarà 10s di megs (py2exe comprime l'interprete python e altre librerie necessarie per l'app). Non abbastanza quanto il framework .NET, ma quasi nessuno lo ha già installato?

0

Per un progetto GUI multipiattaforma, si consiglia di utilizzare Qt libraries e PyQt.

Recentemente li ho usati per una piccola applicazione e li ho amati entrambi; Qt ha un ottimo designer Gui e il modello di slot \ PyQt ha funzionato per me.

È possibile distribuire l'app su Osx e Windows utilizzando py2app e py2exe; here un link utile che mostra come e il possibile risultato di dimensioni.

0
  1. Python soddisfa le tue esigenze.
  2. wxWidgets e Python sono cose completamente diverse. Penso che tu intenda wxPython, che è un toolkit GUI per Python. Non sono sicuro che Py2Exe includerà questo, poiché non ho mai usato Py2Exe - I build dei pacchetti e le loro dipendenze manualmente.
  3. Piuttosto sicuro che tkinter sarebbe incluso. Io uso tkinter un po 'e funziona abbastanza bene.
2

Se non hai paura di imparare una nuova lingua, considera Tcl/Tk. Il motivo per cui ho menzionato questo è il meccanismo di distribuzione Tcl superiore a quasi tutto, che rende davvero facile racchiudere un singolo file exe che include tutto ciò che serve: il runtime Tcl/Tk, il programma, le icone, i file audio, ecc. all'interno di un filesystem virtuale incorporato. E la stessa tecnica che usi per una piattaforma funziona per tutti. Non devi usare strumenti diversi per piattaforme diverse.

Se ti incuriosisce, google per starpack (file singolo che ha tutto), starkit (piattaforma indipendente) e tclkit (runtime specifico per piattaforma).

Tcl/Tk non è la tazza di tè di tutti, ma come linguaggio GUI di avvio è difficile battere IMO. Se ha un tallone d'Achille è che non ha supporto per la stampa. È sorprendente, però, quante GUI non necessitino di supporto per la stampa in questi giorni.