(PY) Biblioteka PyQt 5 (Windows)*

Biblioteka PyQt 5 (Windows)

Windows

Przykładowy kod

import sys
from PyQt5.QtWidgets import (
    QApplication, QLabel, QLineEdit, QWidget,
    QMainWindow, QMessageBox,
    QPushButton, QVBoxLayout)
from random import randint


class MainWindow(QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)

        # Dodaje nazwę okna:
        self.setWindowTitle("RKKR")
        # Określa wielkość okna aplikacji (Zmiana wielkości okna jest możliwa):
        self.resize(300,100)

        # Deklaracja nowego okna:
        self.settingsWindow = SettingsWindow()
        self.newDeviceWindow = NewDeviceWindow()

        # Deklaracja przycisków:
        myButtonOne = QPushButton("One")
        myButtonOne.clicked.connect(self._clickedOne)
        myButtonTwo = QPushButton("Two")
        myButtonTwo.clicked.connect(self._clickedTwo)

        # Deklaracja edytowalnego pola do wprowadzania tekstu:
        myLineEdit = QLineEdit()
        myLineEdit.textChanged.connect(self.settingsWindow.myLabel.setText)

        # Dodanie przycisków button oraz pola edycji tekstu do layaut-u:
        myLayout = QVBoxLayout(self)
        myLayout.addWidget(myButtonOne)
        myLayout.addWidget(myButtonTwo)
        myLayout.addWidget(myLineEdit)

        # Deklaracja / wywołanie layaut-u:
        myWidget = QWidget()
        myWidget.setLayout(myLayout)
        self.setCentralWidget(myWidget)

    def _clickedOne(self):
        """ Funkcja otwierająca / zamykająca nowe okno """
        if self.settingsWindow.isVisible():
            # Zamyka okno jeśli jest ono otwarte:
            self.settingsWindow.hide()
        else:
            # Otwiera okno jeśli nie jest ono otwarte:
            self.settingsWindow.show()

    def _clickedTwo(self):
        """ Funkcja otwierająca nowe okno """
        # Otwarcie nowego okna:
        self.newDeviceWindow.show()
        
class SettingsWindow(QWidget):
    """ Deklaracja nowego okna, nowe okno moe być nowym oknem głównym QMainWindow """

    def __init__(self):
        super().__init__()

        myLayout = QVBoxLayout()
        self.myLabel = QLabel(f"To jest Sparta i jej {randint(200,500)} wojowników.")
        myLayout.addWidget(self.myLabel)
        self.setLayout(myLayout)

class NewDeviceWindow(QWidget):
    """ Deklaracja nowego okna, nowe okno moe być nowym oknem głównym QMainWindow """

    def __init__(self):
        super().__init__()

        myLayout = QVBoxLayout()
        self.myLabel = QLabel(f"To jest Sparta i jej {randint(200,500)} wojowników.")
        myLayout.addWidget(self.myLabel)
        self.setLayout(myLayout)

def main():
    application = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    application.exec_()

if __name__ == "__main__":
    main()

Pozostałe tematy związane z bibliotekami / modułami Python

Podstawowe

Rozszerzone

SQL

PyQt 5

Automatyzacja

Data Mining

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz