pyqt Samouczek
Rozpoczęcie pracy z pyqt
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
).
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.