Szukaj…


Uwagi

PyQt jest powiązaniem Pythona z popularną, wieloplatformową strukturą aplikacji Qt, powszechnie używaną do tworzenia aplikacji graficznych. PyQt4 obsługuje Qt4, a PyQt5 obsługuje Qt5. Działa na wszystkich platformach obsługiwanych przez Qt (Windows, OS X, Linux, iOS i Android). Powiązania są implementowane jako zestaw modułów i klas Python.

Więcej informacji można znaleźć na stronie PyQt .

Instalacja PyQt4

Sugerowana metoda instalacji

Windows : Pobierz i uruchom plik binarny .

Linux (Debian) : Uruchom to polecenie w wierszu polecenia:

$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer

OS X : Uruchom to polecenie w wierszu polecenia:

$ brew install pyqt

Zainstaluj ręcznie

Możesz również pobrać kod źródłowy ręcznie tutaj, a następnie zainstalować go i skonfigurować samodzielnie.

Sprawdź swoją instalację

Jeśli pyqt jest poprawnie zainstalowany, będziesz mógł uruchomić polecenie pyuic4 . Jeśli zostanie poprawnie zainstalowany, pojawi się następujący błąd:

$ pyuic4 
Error: one input ui-file must be specified

Instalacja zakończona

Zainstalowałeś teraz bibliotekę PyQt4. Oprócz PyQt4 zainstalowano także dwie przydatne aplikacje:

  • Qt Designer: aplikacja do projektowania interfejsów graficznych metodą „przeciągnij i upuść” (tworzy pliki .ui ),
  • pyuic4: Aplikacja wiersza poleceń, która może konwertować pliki .ui na kod Pythona.

Podstawowa aplikacja

Poniższy przykład pokazuje podstawowe okno główne GUI z widgetem etykiet, paskiem narzędzi i paskiem stanu za pomocą 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_())

Witaj świecie

Ten podstawowy kod uruchomi okno GUI „Hello world” za pomocą 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_())

To jest ten sam kod przy użyciu 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_())

Prosta próbka przeciągnij i upuść

Stwórz prostą aplikację GUI w 3 łatwych krokach.

1. Projekt

Otwórz Qt Creator , stwórz nowy projekt i wykonaj swój projekt. Zapisz swój wynik jako plik .ui (tutaj: mainwindow.ui ).

Przykład widżetu

2. Wygeneruj odpowiedni plik .py

Teraz możesz utworzyć plik .py na podstawie pliku .ui wygenerowanego w poprzednim kroku. Wpisz następujące polecenie w wierszu polecenia:

$ pyuic4 mainwindow.ui -o GUI.py

Jeśli powyższa linia zostanie pomyślnie uruchomiona, plik GUI.py zostanie utworzony.

3. Kody Python

Możesz dodać własny kod (np. Sygnały i gniazda) w pliku GUI.py , ale lepiej jest dodać je w nowym pliku. Jeśli kiedykolwiek będziesz chciał wprowadzić zmiany w GUI, plik GUI.py zostanie zastąpiony. Dlatego użycie innego pliku w celu dodania funkcjonalności jest lepsze w większości przypadków.

Nazwijmy nowy plik 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_()

Teraz możesz uruchomić main.py i zobaczyć swój GUI.

Wynik



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow