PyQT Button erstellen

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

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        
        # Layout erstellen
        layout = QVBoxLayout()
        
        # Widgets erstellen
        btn1 = QPushButton('Button 1')
        btn2 = QPushButton('Button 2')
        
        # Widgets zum Layout hinzufügen
        layout.addWidget(btn1)
        layout.addWidget(btn2)
        
        # Layout zum Hauptfenster hinzufügen
        self.setLayout(layout)
        
        # Fenster Einstellungen
        self.setWindowTitle('My Qt App')
        self.setGeometry(100, 100, 300, 200)

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

Um mit Qt eine Aktion durch die Entertaste auszulösen, können Sie verschiedene Ansätze verwenden, abhängig von Ihrem spezifischen Anwendungsfall:

QLineEdit

Wenn Sie ein QLineEdit-Widget verwenden, können Sie das returnPressed-Signal nutzen:

from PyQt5.QtWidgets import QLineEdit

line_edit = QLineEdit()
line_edit.returnPressed.connect(self.on_enter_pressed)

def on_enter_pressed(self):
    print("Enter wurde in QLineEdit gedrückt")

QPushButton

Für einen QPushButton können Sie die setAutoDefault-Methode verwenden:

from PyQt5.QtWidgets import QPushButton

button = QPushButton("Klick mich")
button.setAutoDefault(True)
button.clicked.connect(self.on_button_clicked)

def on_button_clicked(self):
    print("Button wurde geklickt oder Enter gedrückt")

Globaler Event-Filter

Für eine globale Lösung können Sie einen Event-Filter implementieren:

from PyQt5.QtCore import Qt, QObject
from PyQt5.QtWidgets import QApplication

class EnterKeyFilter(QObject):
    def eventFilter(self, obj, event):
        if event.type() == event.KeyPress and event.key() == Qt.Key_Return:
            print("Enter wurde gedrückt")
            return True
        return super().eventFilter(obj, event)

app = QApplication([])
enter_filter = EnterKeyFilter()
app.installEventFilter(enter_filter)

QAction

Sie können auch eine QAction erstellen und diese mit der Entertaste verknüpfen:

from PyQt5.QtWidgets import QAction
from PyQt5.QtGui import QKeySequence

action = QAction("Enter-Aktion", self)
action.setShortcut(QKeySequence(Qt.Key_Return))
action.triggered.connect(self.on_enter_action)
self.addAction(action)

def on_enter_action(self):
    print("Enter-Aktion wurde ausgelöst")

Wichtige Hinweise

  • Die returnPressed-Methode von QLineEdit ist besonders nützlich für Eingabefelder.
  • setAutoDefault(True) für QPushButton ermöglicht die Aktivierung durch Enter, wenn der Button den Fokus hat.
  • Der globale Event-Filter fängt alle Enter-Tastendrücke in der Anwendung ab.
  • QAction mit Shortcut bietet eine flexible Lösung für globale Tastenkombinationen.

Wählen Sie die Methode, die am besten zu Ihrer Anwendungsstruktur und Ihren Anforderungen passt. Beachten Sie, dass der Kontext (z.B. welches Widget den Fokus hat) das Verhalten beeinflussen kann.