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 ).

Ett exempel på en widget

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.

Produktion



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow