Python è una buona scelta per sviluppare interfacce utente? In tal caso, wxPython o Tkinter?


12

Non vedo l'ora di sviluppare un'applicazione desktop usando Python. Sono un principiante e non ho esperienza sufficiente in Python. Sono anche un programmatore Java. Anche se ho una certa esperienza nella creazione di interfacce utente utilizzando Swing, vedo che le app sviluppate su Swing sono troppo lente. Bene, questo potrebbe essere uno dei motivi per cui molte delle principali implementazioni vengono eseguite in C / C ++ come nei browser / giochi.

Lo sviluppo di un'interfaccia utente in C ++ potrebbe essere un'opzione migliore, ma preferisco scegliere un linguaggio di programmazione di alto livello rispetto a C / C ++. Quindi ho optato per Python presumendo che avrebbe funzionato bene su Java Swing poiché Python stesso è nativamente costruito su C / C ++.

Quindi posso andare avanti con questo presupposto che Python è meglio di Java Swing per sviluppare un'interfaccia utente? O suggerisci un linguaggio migliore di Python per sviluppare interfacce utente? Se mai vado avanti con Python, quale toolkit dovrei usare Tkinter o wxPython e perché?


4
I tuoi presupposti sembrano imperfetti. Python è basato su C / C ++, ma lo è anche JVM (molto probabilmente).
user281377,

Perché limitarti a Tkinter e wxPython?
Anto,

2
Non sto cercando di limitarmi. Avevo l'impressione che questi fossero i due ben noti toolkit per lo sviluppo della GUI.
Vamsi Emani,

Lazarus IDE, Free Pascal Compiler e Object Pascal rappresentano un modo molto semplice e veloce per sviluppare GUI.
systemovich,

Risposte:


15

Ho appena iniziato lo sviluppo di un'app desktop Windows, usando Python. Sto usando PyQt .

È molto facile da installare e da avviare. Il tutorial qui: http://zetcode.com/tutorials/pyqt4/firstprograms/ mostra quanto sia facile, mostrerò il codice:

#!/usr/bin/python

# simple.py

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
widget.show()

sys.exit(app.exec_())

Questo ti apre una finestra.

Ho scelto Python / PyQt su C # / WPF perché voglio imparare Python e il mio datore di lavoro mi sta dando il tempo.

Il mio manager mi ha consigliato PyQt su altri framework, poiché nella sua esperienza è più facile da usare.



Ho usato PySide prima e funziona abbastanza bene. Tuttavia, lo sviluppo futuro di PySide è un po 'limbo perché Nokia ha venduto Qt.
jhocking

5

Se stai cercando di sviluppare una GUI nativa per Windows o OSX, ti consiglierei di usare Tkinter (cioè la libreria GUI Tk con vestiti pythonic su) in quanto ti avvicina molto all'aspetto nativo di wxPython (wxWidgets for python) . Non sto trovando facile da quantificare, ma ai miei occhi gli screenshot di Windows e OSX . YMMV. So che Tk ( importante: con il set di widget Ttk) ha un aspetto molto nativo.

Se stai sviluppando per Linux ... non posso davvero consigliarti l'uno sull'altro, poiché ho perso la traccia di quello che è l'attuale piattaforma preferita. :-)


1
Nota che Tkinter non fornisce molti widget di uso comune pronti all'uso. Ad esempio, se desideri una barra di avanzamento, dovrai scriverne una tu stesso o trovare un'altra scritta da qualcun altro.
James,

1
Aspetta, ma wxWidgets utilizza elementi della GUI nativi. Almeno, i binding C ++ lo fanno. Non sono così sicuro di Python.
Zhehao Mao,

@ZhehaoMao wxWidgets è un mix di elementi nativi e non nativi. Alcuni elementi sono simili a quelli nativi, ma in realtà sono personalizzati per un'API più uniforme.
Hubert Grzeskowiak,

3

Direi che è una buona scelta se conosci già e ti piace Python. Altrimenti, usa la lingua che già conosci, che è Java. L'unica eccezione qui è se questo è un progetto di apprendimento, nel qual caso suggerirei che fare esperienza con altre lingue sarebbe una buona idea.

Il mio punto qui è che Python non è davvero migliore o peggiore di Java per le applicazioni dell'interfaccia utente, quindi usa qualsiasi strumento con cui ti piace lavorare.


1

L'unico vero consiglio che uno può dare per tutte queste domande è "provalo e vedi se ti piace" - le opinioni degli altri sui linguaggi di programmazione (in particolare su quali potrebbero essere le loro lingue più amate o odiate) raramente valgono molto .

Tuttavia, il mio valore di 5 centesimi - per bussare velocemente, semplici GUI di Windows, la combinazione di Python e wxWidgets funziona molto bene. Ma come ho detto, provalo tu stesso: puoi mettere insieme qualcosa di semplice ma utile in circa un'ora, anche senza molta esperienza di Python (certamente non ne ho molto).


1

Nel caso in cui qualcuno finisca qui tramite il motore di ricerca: puoi generare rapidamente alcuni esempi di Tkinter usando il generatore PAGE. Genera un codice decente che ti darà l'idea di cosa ci vorrà per arrivare dove vuoi andare. Richiede sicuramente di accettare la generalità, come afferma l'autore, ma per qualcuno che vuole testare le acque o avere un'idea generale di dove stanno andando è un buon strumento. PAGINA su SourceForge .


-1

Penso che alcuni tipi di applicazioni siano abbastanza gestibili da scrivere in Python.

Ad esempio Task Coach è scritto in Python / wxPython. Usano un compilatore Python2exe come py2app, py2exe ecc. Per creare eseguibili multipiattaforma dall'aspetto nativo.


-1

Se sei limitato allo sviluppo nell'ecosistema Windows e usi Visual Studio, prendi in considerazione Iron Python. Iron Python è Python più gli oggetti .NET.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.