@HeiDieLX: Anmerkungen zum Quelltext:
Kommentare sollen dem Leser einen Mehrwert über den Code geben. Faustregel: Kommentare beschreiben nicht *was* der Code macht, denn das steht da bereits als Code, sondern warum er das macht. Sofern das nicht offensichtlich ist. Offensichtlich ist in aller Regel auch was in der Dokumentation von Python und den verwendeten Bibliotheken steht.
Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst.
`setGeometry()` und `move()` verwendet man so nicht, weil das von den Systemeinstellungen und Monitorgrösse/-auflösung abhängt ob das am Ende so aussieht wie man das wollte. Wenn man Pech hat werden GUIs auf diese Weise komplett unbenutzbar wenn sich beispielsweise Bedienelemente dadurch überlappen und man als Benutzer da nicht mehr wirkl heran kommt, oder die Informationen nicht mehr (komplett) ablesen kann. Grösse wird durch den Inhalt bestimmt, und Position durch die Grössen und Positionen der anderen Elemente im Layout. Zudem nervt man Benutzer gewaltig wenn man versucht Fensterpositionen vorzugeben.
Qt-Properties kann man auch beim erstellen von Qt-Objekten schon als Schlüsselwortargumente angeben.
Namen sollten keine kryptischen Abkürzungen enthalten oder gar nur daraus bestehen. Wenn man `message` meint, sollte man nicht nur `msg` schreiben.
`exec` ist in Python 3 kein Schlüsselwort mehr, man muss da also nicht mehr die `exec_()`-Methode aufrufen, sondern kann die `exec()`-Methode aufrufen. Die `exec_()`-Methode gibt es in PyQt6 dann auch nicht mehr.
Überarbeitet:
Code: Alles auswählen
#!/usr/bin/env python3
"""
Simple Hello World example with PyQt5.
"""
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
def main():
app = QApplication(sys.argv)
window = QWidget(windowTitle="PyQt5 App")
layout = QVBoxLayout()
layout.addWidget(QLabel("<h1>Hello World!</h1>"))
window.setLayout(layout)
window.show()
sys.exit(app.exec())
if __name__ == "__main__":
main()
Tutorial, Sprachreferenz, und Dokumentation der Standardbibliothek von Python findet man in der Python-Dokumentation. Und die auf der Python-Webseite.
Dokumentation zu Qt gibt es auf der Qt-Webseite. Die ist für C++ — da muss man durch. In der PyQt5-Dokumentation ist beschrieben wie die Übersetzung von Qt-API auf PyQt5-API funktioniert.