pyqt Tutorial
Iniziare con pyqt
Ricerca…
Osservazioni
PyQt è un collegamento Python al popolare framework per applicazioni Qt multipiattaforma comunemente usato per creare applicazioni grafiche. PyQt4 supporta Qt4 e PyQt5 supporta Qt5. Funziona su tutte le piattaforme supportate da Qt (Windows, OS X, Linux, iOS e Android). I bind sono implementati come un insieme di moduli e classi Python.
Per ulteriori informazioni consultare il sito Web PyQt .
Installazione di PyQt4
Metodo di installazione suggerito
Windows : scarica ed esegui il file di configurazione binaria .
Linux (Debian) : esegui questo comando nella tua riga di comando:
$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer
OS X : esegui questo comando nella tua riga di comando:
$ brew install pyqt
Installa manualmente
Puoi anche scaricare manualmente il codice sorgente da qui e quindi installarlo e configurarlo da solo.
Metti alla prova la tua installazione
Se pyqt è installato correttamente, sarai in grado di eseguire il comando pyuic4
. Se è installato correttamente, vedrai il seguente errore:
$ pyuic4
Error: one input ui-file must be specified
Installazione completata
Ora hai installato la libreria PyQt4. Sono state installate anche due utili applicazioni sul lato PyQt4:
- Qt Designer: un'applicazione per il design "drag & drop" di interfacce grafiche (crea file
.ui
), - pyuic4: un'applicazione a riga di comando in grado di convertire i file
.ui
in codice Python.
Un'applicazione di base
L'esempio seguente mostra una finestra GUI principale di base con un widget etichetta, una barra degli strumenti e una barra di stato che utilizza PyQt4.
import sys
from PyQt4 import QtGui
class App(QtGui.QApplication):
def __init__(self, sys_argv):
super(App, self).__init__(sys_argv)
self.build_ui()
def build_ui(self):
# build a main GUI window
self.main_window = QtGui.QMainWindow()
self.main_window.setWindowTitle('App')
self.main_window.show()
# add a label to the main window
label = QtGui.QLabel('Label')
self.main_window.setCentralWidget(label)
# add a toolbar with an action button to the main window
action = QtGui.QAction('Toolbar action', self)
toolbar = QtGui.QToolBar()
toolbar.addAction(action)
self.main_window.addToolBar(toolbar)
# add a status bar to the main window
status_bar = QtGui.QStatusBar()
status_bar.showMessage('Status bar')
self.main_window.setStatusBar(status_bar)
if __name__ == '__main__':
app = App(sys.argv)
sys.exit(app.exec_())
Ciao mondo
Questo codice base avvierà una finestra della GUI "Hello world" usando PyQt4:
import sys
from PyQt4 import QtGui
# create instance of QApplication
app = QtGui.QApplication(sys.argv)
# create QLabel, without parent it will be shown as window
label = QtGui.QLabel('Hello world!')
label.show()
# start the execution loop of the application
sys.exit(app.exec_())
Questo è lo stesso codice usando PyQt5.
import sys
from PyQt5 import QtWidgets
# create instance of QApplication
app = QtWidgets.QApplication(sys.argv)
# create QLabel, without parent it will be shown as window
label = QtWidgets.QLabel('Hello world!')
label.show()
# start the execution loop of the application
sys.exit(app.exec_())
Un semplice esempio di trascinamento
Crea una semplice applicazione GUI in 3 semplici passaggi.
1. Design
Apri Qt Creator
, crea un nuovo progetto e crea il tuo design. Salvare il risultato come .ui
di file (qui: mainwindow.ui
).
2. Genera il file .py corrispondente
Ora puoi creare un file .py dal tuo file .ui che hai generato nel passaggio precedente. Inserisci il seguente nella riga di comando:
$ pyuic4 mainwindow.ui -o GUI.py
Se la riga precedente viene eseguita correttamente, viene creato un file GUI.py
3. Codici Python
È possibile aggiungere il proprio codice (ad es. Segnali e slot) nel file GUI.py
ma è meglio aggiungerli in un nuovo file. Se si desidera apportare modifiche alla GUI, il file GUI.py
verrà sovrascritto. Ecco perché utilizzare un altro file per aggiungere funzionalità è migliore nella maggior parte dei casi.
Chiamiamo il nuovo file main.py
from PyQt4 import QtGui
import sys
import GUI # Your generated .py file
class MyApp(QtGui.QMainWindow, GUI.Ui_MainWindow):
def __init__(self, parent=None):
super(ExampleApp, self).__init__(parent)
self.setupUi(self)
# Connect a button to a function
self.btn_run.clicked.connect(self.run)
def run(self):
# Write here what happens after the button press
print("run")
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
form = ExampleApp()
form.show()
app.exec_()
Ora puoi eseguire main.py
e vedere la tua GUI.