PyQt5 Tutorials

PyQt5 Pushbuttons: Der umfassende Leitfaden

Spread the love

Dieses Tutorial bietet eine umfassende Einführung in PyQt5s QPushButton-Widget und seine Interaktion mit anderen Kernelementen. Wir bauen auf einer grundlegenden Button-Implementierung auf und untersuchen Styling-Techniken und Ereignisbehandlung, um interaktive und visuell ansprechende Anwendungen zu erstellen.

Inhaltsverzeichnis

  1. Einen Push-Button erstellen
  2. Den Push-Button stylen
  3. Button-Klicks behandeln: Signale und Slots
  4. Integration mit QLabel: Informationen anzeigen
  5. Erweitertes Styling mit QStyleSheet

1. Einen Push-Button erstellen

Das QPushButton ist ein grundlegender Baustein in der PyQt5 GUI-Entwicklung. Erstellen wir einen einfachen Button:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Meine PyQt5 App")

button = QPushButton("Klicken Sie mich!")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Dieser Code erstellt ein Fenster mit einem Button mit der Beschriftung „Klicken Sie mich!“. Der Button ist derzeit inaktiv; wir fügen im nächsten Abschnitt Funktionalität hinzu.

2. Den Push-Button stylen

PyQt5 bietet verschiedene Möglichkeiten, das Aussehen Ihrer Buttons anzupassen. Wir können den Text, die Schriftart und sogar Icons hinzufügen:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtGui import QFont, QIcon

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Gestylter Button")

button = QPushButton("Klicken Sie mich!")
button.setFont(QFont('Arial', 12)) # Schriftart setzen
button.setIcon(QIcon('pfad/zu/ihrem/icon.png')) # Icon hinzufügen (ersetzen Sie dies mit Ihrem Icon-Pfad)
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Denken Sie daran, 'pfad/zu/ihrem/icon.png' durch den tatsächlichen Pfad zu Ihrer Icon-Datei zu ersetzen.

3. Button-Klicks behandeln: Signale und Slots

Um den Button interaktiv zu gestalten, verwenden wir Signale und Slots. Ein Signal wird emittiert, wenn ein Ereignis auftritt (wie ein Button-Klick), und ein Slot ist eine Funktion, die auf das Signal reagiert.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Interaktiver Button")

button = QPushButton("Klicken Sie mich!")
label = QLabel("Button noch nicht geklickt.")
layout = QVBoxLayout()
layout.addWidget(button)
layout.addWidget(label)
window.setLayout(layout)

def on_button_click():
    label.setText("Button geklickt!")

button.clicked.connect(on_button_click) #Signal mit dem Slot verbinden

window.show()
sys.exit(app.exec_())

Dieses Beispiel verbindet das clicked-Signal des Buttons mit der on_button_click-Funktion, die ein Label aktualisiert, um anzuzeigen, dass der Button gedrückt wurde.

4. Integration mit QLabel: Informationen anzeigen

QLabel-Widgets eignen sich ideal zum Anzeigen von Text oder Bildern neben Buttons. So kombinieren Sie sie:


# (Code aus Abschnitt 3 kann hier erweitert werden, um ein QLabel zum Anzeigen von Informationen einzuschließen)

(Der Code aus Abschnitt 3 kann leicht erweitert werden, um ein QLabel zum Anzeigen von Informationen einzuschließen. Der Kürze halber wird dies hier nicht explizit gezeigt, aber das Konzept wird im vorherigen Beispiel demonstriert.)

5. Erweitertes Styling mit QStyleSheet

Für komplexeres Styling verwenden Sie QStyleSheet. Dies ermöglicht es Ihnen, CSS-ähnliche Stile auf Ihre Widgets anzuwenden.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QStyleSheet Beispiel")

button = QPushButton("Klicken Sie mich!")
button.setStyleSheet("QPushButton { background-color: lightblue; color: darkblue; border-radius: 10px; padding: 10px; }")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Dies verwendet QStyleSheet, um den Button mit hellblauem Hintergrund, dunkelblauem Text, abgerundeten Ecken und Padding zu stylen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert