{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 11. előadás\n", "_Tartalom_: GUI, grafikus felhasználói felület készítése `pyqt` és `pyqtgraph` segítségével.\n", "\n", "`Pyqt` segítségével felhasználói felületeket készíthetünk, amiket nem csupán scripként, de futtatható állományként, vagy akár telepítőként is használhatunk. Első lépésként ellenőrizzük, hogy telepítve vannak-e a szükséges package-k, a következő importokkal:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import PyQt5\n", "import pyqtgraph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Amennyiben `ModuleNotFoundError`-t kapunk telepítsük a két package-t:\n", "```\n", "pip install pyqt5\n", "pip install pyqtgraph\n", "```\n", "## Első példa\n", "Próbáljuk ki az első rövid kódot:\n", "\n", "----\n", "```python\n", "import PyQt5.QtWidgets as qtw\n", "\n", "app = qtw.QApplication([])\n", "window = qtw.QWidget()\n", "layout = qtw.QHBoxLayout() \n", "b1 = qtw.QPushButton(\"1-es gomb\")\n", "b2 = qtw.QPushButton(\"2-es gomb\")\n", "l1 = qtw.QLabel(\"--------\")\n", "layout.addWidget(b1)\n", "layout.addWidget(l1)\n", "layout.addWidget(b2)\n", "window.setLayout(layout)\n", "\n", "def button1_clicked(i):\n", " l1.setText(\"Kattintás az 1-es gombra\")\n", "\n", "def button2_clicked(i):\n", " l1.setText(\"Kattintás a 2-es gombra\")\n", " app.processEvents()\n", " alert = qtw.QMessageBox()\n", " alert.setText(\"Rákattintottál a 2-es gombra\")\n", " alert.exec_()\n", "\n", "b1.clicked.connect(button1_clicked)\n", "b2.clicked.connect(button2_clicked)\n", "window.show()\n", "app.exec_()\n", "```\n", "### Windows alatt így néz ki:\n", "\n", "### Linux alatt így néz ki:\n", "\n", "\n", "---\n", "\n", "## Nézzünk egy összetettebb példát\n", "A példában már `pyqtgraph`-ot is használjuk, grafinkonok megjelenítéséhez." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### _Used sources_ / Felhasznált források\n", "- [Shannon Turner: Python lessons repository](https://github.com/shannonturner/python-lessons) MIT license (c) Shannon Turner 2013-2014\n", "- [Siki Zoltán: Python mogyoróhéjban](http://www.agt.bme.hu/gis/python/python_oktato.pdf) GNU FDL license (c) Siki Zoltán\n", "- [BME AUT](https://github.com/bmeaut) MIT License Copyright (c) BME AUT 2016-2018\n", "- [PyQt5 tutorial (ZetCode)](http://zetcode.com/gui/pyqt5/)\n", "- [PyQt5 tutorial (fman)](https://build-system.fman.io/pyqt5-tutorial)\n", "- [pyqtgraph plotting](http://www.pyqtgraph.org/documentation/plotting.html)\n", "- [pyqtgraph examples](http://www.pyqtgraph.org/downloads/0.10.0/pyqtgraph-0.10.0-deb/pyqtgraph-0.10.0/examples/) (dockarea.py)\n", "- [pyqtgraph.org](http://www.pyqtgraph.org/)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }