PyQT einfaches Fenster erstellen

Grundelemente in PyQT:

Methoden:

sind Funktionen, die innerhalb einer Klasse definiert werden. Sie sind innerhalb der Klasse sichtbar und benutzbar. Von aussen kann auf Methoden nur über eine Referenz auf ein Objekt dieser Klasse zugegriffen werden und dies auch nur dann, wenn die Methode nicht als privat deklariert wird. Eine weitere Besonderheit von Methoden ist, dass das erste Element innerhalb der Parameterliste immer self sein muss. Über den Parameter self erhält die Methode beim Aufruf eine Referenz auf das Objekt für welches sie aufgerufen wird. Folgender Code definiert 2 Methoden innerhalb einer Klasse. Der Rumpf der Methoden wird vorerst noch nicht definiert:

class meineKlasse:
        def methode1(self,par1,par2):
                pass
        def methode2(self,par1='a',par2=3):
                pass


Widgets:

  • Widgets sind visuelle Elemente der grafischen Benutzeroberfläche (GUI) in PyQt

Sie sind Klassen, die von QWidget abgeleitet sind und repräsentieren UI-Komponenten wie Buttons, Labels, Textfelder etc. Beispiele für Widgets sind QCheckBox, QSlider, QLabel usw. Widgets können in einer Hierarchie angeordnet werden, wobei ein Widget ein Eltern-Widget (parent) haben kann

Module:

  • Module sind Python-Dateien, die Code organisieren und gruppieren

In PyQt werden verschiedene Funktionalitäten in separate Module aufgeteilt, z.B. QtGui, QtWidgets, QtCore

  • Module enthalten Klassen, Funktionen und Variablen, die thematisch zusammengehören.
  • Sie ermöglichen eine strukturierte und modulare Entwicklung von PyQt-Anwendungen.

Zusammengefasst: Widgets sind die visuellen Bausteine der Benutzeroberfläche, während Module die Codeorganisation und -struktur in PyQt-Anwendungen ermöglichen. Widgets werden typischerweise innerhalb von Modulen definiert und verwendet, um GUIs zu erstellen.

Dieser Code erstellt ein ganz einfaches Fenster:

import sys
from PyQt6.QtWidgets import QApplication, QWidget

class Beispielfenster(QMainWindow):  # Erbe von QMainWindow
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        central_widget = QWidget()
        self.setCentralWidget(central_widget)        

        layout = QVBoxLayout(central_widget)    
        # Hier können Sie weitere Widgets zum Layout hinzufügen

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Beispielfenster()
    ex.show()
    sys.exit(app.exec())

Zeile 2: Wir importieren evtl erforderliche Module


Zeile 4: es wird eine Klasse erstellt
Python unterstützt auch die objektorientierte Programmierung. Es können Klassen definiert werden, die Attribute und Methoden kapseln. Durch die gemeinsame Definition von Attributen und Methoden innerhalb des Namensraums einer Klasse wird Modularisierung und Zugriffskontrolle erreicht.

Die Definition einer Klasse beginnt in Python mit einer Kopfzeile der Form:

class meineKlasse: