PyQt5 je knihovna Pythonu určená k vytváření grafických rozhraní. Funkce této knihovny umožňují vývojářům vytvářet aplikace s atraktivním a intuitivním uživatelským rozhraním.
Jedním ze základních ovládacích prvků v PyQt5 je nápis label nebo štítek určený k zobrazení textu a obrázků. Label výrazně usnadňuje interakci uživatele s aplikací a pomáhá uživateli říkat, co má v dané situaci dělat.
Vytvoření labelu v PyQt5 není obtížné. Nejprve je nutné importovat příslušné moduly a poté použít speciální metodu k vytvoření instance label. Dále můžete nastavit text, formátování a pozici labelu v okně aplikace.
Níže je několik příkladů vytvoření labelu v PyQt5, na základě kterých si můžete snadno osvojit základní funkce tohoto ovládacího prvku.
Příprava prostředí a instalace PyQt5
Pro zahájení práce s knihovnou PyQt5 je nutné připravit vývojové prostředí a nainstalovat samotnou knihovnu a závislosti. V této části se podíváme na podrobný návod pro přípravu prostředí a instalaci PyQt5.
Krok 1: Instalace Pythonu
Prvním krokem je instalace Pythonu, protože PyQt5 je doplněk nad programovacím jazykem Python. Nejnovější verzi Pythonu si můžete stáhnout a nainstalovat z oficiálních stránek https://www.python.org/downloads/. Instalační soubor je k dispozici pro různé operační systémy.
Krok 2: Instalace pip
Po instalaci Pythonu budete muset nainstalovat nástroj pip, který je správcem balíčků Pythonu. V konzoli (pro Windows je to příkazový řádek, pro macOS a Linux je to terminál) spusťte následující příkaz:
python -m ensurepip --upgrade
Tento příkaz nainstaluje pip, pokud ještě není nainstalován, nebo jej aktualizuje na nejnovější verzi.
Krok 3: Instalace PyQt5
Nyní můžete nainstalovat samotnou knihovnu PyQt5. V konzoli spusťte následující příkaz:
pip install pyqt5
Tento příkaz stáhne a nainstaluje knihovnu PyQt5 a její závislosti.
Krok 4: Kontrola instalace
Chcete-li se ujistit, že je PyQt5 úspěšně nainstalován, můžete provést následující kód:
import PyQt5print(PyQt5.__version__)
Pokud nemáte žádné chyby a vidíte verzi PyQt5, pak je vše úspěšné a jste připraveni začít používat PyQt5 k vytváření rozhraní aplikací!
Vytvoření prvního labelu
1. Importovat potřebné moduly:
from PyQt5.QtWidgets import QApplication, QLabel, QWidgetimport sys
2. Vytvořit hlavní okno aplikace:
app = QApplication(sys.argv)window = QWidget()window.setWindowTitle("Мое первое приложение")
3. Vytvořit objekt label a nastavit jeho základní informace:
label = QLabel(window)label.setText("Привет, мир!")
4. Umístit label na okno:
label.move(50, 50)
5. Zobrazit okno:
window.show()sys.exit(app.exec())
V důsledku provádění těchto kroků se na obrazovce zobrazí label s textem " Ahoj, světe!".
Všimněte si, že pro správnou funkci programu není nutné na okně specifikovat souřadnice label, ale k demonstraci byl použit příkaz label.move(50, 50).
Nastavení parametrů label
V PyQt5 existuje řada možností, které lze nakonfigurovat pro widget label. Zde jsou některé z nich:
- text - nastaví text, který se zobrazí uvnitř labelu;
- alignment - nastaví zarovnání textu uvnitř label (výchozí zarovnání vlevo);
- font - nastaví písmo a velikost textu;
- color - nastaví barvu textu;
- background-color - nastaví barvu na pozadí label;
- border - nastavuje hranici kolem labelu;
- size - nastavuje rozměry labelu;
- tooltip - nastaví pop-up nápovědu pro label;
- enabled - umožňuje zapnout nebo vypnout možnost interakce s labelem;
- visible - umožňuje skrýt nebo zobrazit label.
To jsou jen některé z dostupných parametrů. V kombinaci umožňují dosáhnout požadovaného vzhledu a chování pro widget label v PyQt5.
Změna textu a stylu label
Pro změnu textu lze použít metodu setText(). Níže je uveden příklad kódu, který tuto možnost demonstruje:
label = QLabel("Привет, мир!")label.setText("Измененный текст")
Nyní se na obrazovce zobrazí text "změněný text", nikoli " Ahoj světe!".
Kromě změny textu je možné změnit i styl psaní, například jeho barvu pozadí nebo barvu textu. K tomu je třeba použít styly CSS. PyQt5 k tomu používá metodu setStyleSheet (). Níže je uveden příklad kódu, který ukazuje změnu stylu label:
label.setStyleSheet("background-color: yellow; color: blue;")
Nyní bude mít label žluté pozadí a modrou barvu textu.
V PyQt5 lze tedy pomocí metod setText() a setStyleSheet() snadno měnit text a styl label, což vám umožní vytvářet zajímavější a krásnější uživatelská rozhraní.
Přidání labelu do formuláře
The PyQt5 label je widget, který se používá k zobrazení textu nebo obrázku ve tvaru. Chcete-li přidat label do formuláře, musíte provést určité kroky:
- Importovat potřebné moduly:
| from PyQt5.QtWidgets import * |
- Vytvořit instanci třídy QApplication:
| app = QApplication([]) |
- Vytvořit instanci třídy QLabel:
| label = QLabel ('text') |
Jako argument je předán text, který se zobrazí na labelu.
- Vyvolejte požadované metody pro konfiguraci label:
| label.setAlignment(Qt.AlignCenter) |
| label.setFont(QFont('Arial', 18)) |
| label.setStyleSheet('color: red') |
Zde se metoda setAlignment () používá k zadání zarovnání textu na label (v tomto případě bude uprostřed), metoda setFont () k zadání písma a jeho velikosti a metoda setStyleSheet () k nastavení stylu label.
- Zobrazit label na formuláři:
Metoda show() se používá k zobrazení label.
- Spustit hlavní cyklus aplikace:
Hlavní cyklus aplikace je nutný pro zpracování událostí a spuštění provedení aplikace.
Po dokončení všech kroků bude label přidán do formuláře a zobrazen s nastavenými nastaveními.
Zpracování událostí label
Label (štítek) v PyQt5 může být interaktivní, to znamená reagovat na určité události. To je zvláště užitečné, když je třeba přidat další funkce nebo uživatelské rozhraní.
Ke zpracování událostí label používá PyQt5 objekt třídy QLabel, který poskytuje několik metod a signálů pro práci s událostmi:
- mousePressEvent () - vyvoláno stisknutím tlačítka myši;
- mouseReleaseEvent () - voláno při uvolnění tlačítka myši po stisknutí;
- mouseDoubleClickEvent () - je vyvolán dvojitým kliknutím myši;
- enterEvent() - je vyvolán, když najedete myší na značku;
- leaveEvent() - je vyvolán odstraněním myši ze štítku.
Níže je uveden příklad kódu, který ukazuje zpracování událostí pro štítek:
from PyQt5.QtWidgets import QApplication, QLabel, QMessageBoxfrom PyQt5.QtCore import Qtdef handle_mouse_press():QMessageBox.information(window, "Сообщение", "Нажата кнопка мыши")app = QApplication([])window = QLabel("Нажмите на метку")window.setAlignment(Qt.AlignCenter)window.setMouseTracking(True)window.mousePressEvent = handle_mouse_presswindow.show()app.exec_()
V tomto příkladu je vytvořen štítek QLabel s textem "klikněte na štítek". Štítek také používá metody setAlignment() pro zarovnání textu a setMouseTracking () pro sledování polohy kurzoru myši, aniž byste museli stisknout tlačítko myši.
Nakonec je funkce handle_mouse_press() přiřazena vestavěné metodě mousePressEvent () značky. Po stisknutí tlačítka myši se spustí uživatelská funkce a zobrazí se informační zpráva.
Toto je pouze jeden příklad zpracování událostí pro štítek a existuje mnoho dalších možností pro složitější zpracování a akce v reakci na události.
Příklady použití label v PyQt5
Příklad 1: Vytvoření jednoduchého labelu.
Následující příklad ukazuje, jak vytvořit jednoduchý label pomocí modulu PyQt5:
from PyQt5.QtWidgets import QLabel, QApplicationapp = QApplication([])label = QLabel('Привет, мир!')label.show()app.exec_()
Příklad 2: Změna textu a stylu label.
Tento příklad ukazuje, jak změnit text a styl label pomocí metod setText a setStyleSheet:
from PyQt5.QtWidgets import QLabel, QApplicationapp = QApplication([])label = QLabel('Исходный текст')label.setStyleSheet('color: red; font-size: 24px;')label.setText('Измененный текст')label.show()app.exec_()
Příklad 3: Použití HTML v labelu.
PyQt5 vám umožňuje používat HTML tagy k formátování textu label. Následující příklad ukazuje, jak používat HTML kód:
from PyQt5.QtWidgets import QLabel, QApplicationapp = QApplication([])label = QLabel()label.setText('Привет, мир!
')label.show()app.exec_()
V tomto příkladu jsme použili značku k vytvoření záhlaví a také značku pro změnu barvy textu.
Příklad 4: Formátování textu label.
V PyQt5 lze k formátování textu v labelu použít různé metody. Následující příklad ukazuje některé z nich:
from PyQt5.QtWidgets import QLabel, QApplicationapp = QApplication([])label = QLabel('Пример форматирования текста.')label.setWordWrap(True) # Перенос текстаlabel.setAlignment(Qt.AlignCenter) # Выравнивание по центруlabel.setFont(QFont('Arial', 14)) # Изменение шрифта и размераlabel.setFixedWidth(200) # Фиксированная ширинаlabel.show()app.exec_()
V tomto příkladu jsme použili metody setWordWrap pro povolení přenosu textu, setAlignment pro zarovnání uprostřed, setFont pro změnu písma a velikosti a setFixedWidth pro zadání pevné šířky.