Start mit Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
HeiDieLX
User
Beiträge: 3
Registriert: Freitag 26. März 2021, 10:00

Hallo in die Runde,
ich bin der neue...

Das grafische "Hello World!" läuft... soweit so gut.

Code: Alles auswählen

# Filename: hello.py

"""Simple Hello World example with PyQt5."""

import sys

# 1. Import `QApplication` and all the required widgets 
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QWidget
 
# 2. Create an instance of QApplication 
app = QApplication(sys.argv)

# 3. Create an instance of your application's GUI 
window = QWidget()
window.setWindowTitle('PyQt5 App')
window.setGeometry(100, 100, 280, 80)
window.move(60, 15)
helloMsg = QLabel('<h1>Hello World!</h1>', parent=window)
helloMsg.move(60, 15)

# 4. Show your application's GUI 
window.show()

# 5. Run your application's event loop (or main loop) 
sys.exit(app.exec_())

# EOF hello.py
Das habe ich hier gefunden https://realpython.com/python-pyqt-gui-calculator/

Auf meinem Rechner ist openSuse Learp 15.2 und Postgresql 12 installiert.

Wo kann ich nun Informationen (Handbuch) zu der Sprache und der pyqt5 Erweiterung finden. Ich muss ja da tiefer einsteigen, also lesen, üben, lesen...

MfG
Swity vom Bienwald
MfG
Swity vom Bienwald
openSuse Tumbleweed
PostgreSQL 15
LibreOffice 24.8.3.2
Python 3.8
Benutzeravatar
__blackjack__
User
Beiträge: 14055
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten