pyqt Handledning
Komma igång med pyqt
Sök…
Anmärkningar
PyQt är en Python-bindning till den populära Qt-plattformen för plattformar som vanligen används för att göra grafiska applikationer. PyQt4 stöder Qt4 och PyQt5 stöder Qt5. Det körs på alla plattformar som stöds av Qt (Windows, OS X, Linux, iOS och Android). Bindningarna implementeras som en uppsättning Python-moduler och klasser.
För mer information se PyQt-webbplatsen .
Installation av PyQt4
Föreslagen installationsmetod
Windows : Ladda ner och köra den binära installationsfilen .
Linux (Debian) : Kör det här kommandot på din kommandorad:
$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer
OS X : Kör det här kommandot på din kommandorad:
$ brew install pyqt
Installera manuellt
Du kan också ladda ner källkoden manuellt härifrån och sedan installera och konfigurera den själv.
Testa din installation
Om pyqt är korrekt installerat kommer du att kunna köra pyuic4
kommandot. Om den är korrekt installerad ser du följande fel:
$ pyuic4
Error: one input ui-file must be specified
Installationen är klar
Du har nu installerat PyQt4-biblioteket. Två användbara applikationer har också installerats längs sidan PyQt4:
- Qt Designer: En applikation för "dra & släpp" -design för grafiska gränssnitt (skapar
.ui
filer), - pyuic4: Ett kommandoradsprogram som kan konvertera
.ui
filer till Python-kod.
En grundläggande applikation
Följande exempel visar ett grundläggande GUI-fönster med en etikettwidget, ett verktygsfält och en statusfält med 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_())
Hej världen
Den här grundkoden lanserar ett "Hello world" GUI-fönster med 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_())
Detta är samma kod med 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_())
Ett enkelt drag & drop-prov
Gör en enkel GUI-applikation i tre enkla steg.
1. Design
Öppna Qt Creator
, skapa ett nytt projekt och skapa din design. Spara ditt resultat som .ui
fil (här: mainwindow.ui
).
2. Generera motsvarande .py-fil
Nu kan du skapa en .py-fil från din .ui-fil som du genererade i föregående steg. Ange följande i din kommandorad:
$ pyuic4 mainwindow.ui -o GUI.py
Om raden ovan körs framgångsrik GUI.py
en GUI.py
fil.
3. Python-koder
Du kan lägga till din egen kod (t.ex. signaler och slots) i filen GUI.py
men det är bättre att lägga till dem i en ny fil. Om du någonsin vill göra ändringar i ditt GUI kommer GUI.py
filen att skrivas över. Därför är det i de flesta fall bättre att använda en annan fil för att lägga till funktionalitet.
Låt oss kalla den nya filen 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_()
Nu kan du köra main.py
och se ditt GUI.