콘텐츠로 건너뛰기
» PyQt5에서 QLineEdit에 엔터 키 이벤트 처리하기

PyQt5에서 QLineEdit에 엔터 키 이벤트 처리하기

QLineEdit에서 글을 쓰고 엔터 키를 누르면 특정 동작을 수행하도록 하기 위해 returnPressed 시그널을 사용할 수 있습니다. 이 시그널은 QLineEdit에서 엔터 키를 눌렀을 때 발생합니다.

예제 코드

아래는 QLineEdit에서 엔터 키를 눌렀을 때 특정 동작을 수행하는 간단한 예제입니다.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QVBoxLayout, QWidget, QLabel

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QLineEdit Enter Key Example")
        self.setGeometry(100, 100, 400, 200)

        # Create a QLineEdit
        self.line_edit = QLineEdit(self)
        self.line_edit.setPlaceholderText("Type something and press Enter")

        # Connect the returnPressed signal to the slot method
        self.line_edit.returnPressed.connect(self.on_return_pressed)

        # Create a label to display the entered text
        self.label = QLabel("Entered text will be displayed here", self)

        # Set up the main layout
        layout = QVBoxLayout()
        layout.addWidget(self.line_edit)
        layout.addWidget(self.label)

        container = QWidget()
        container.setLayout(layout)
        self.setCentralWidget(container)

    def on_return_pressed(self):
        # Get the text from the QLineEdit
        text = self.line_edit.text()

        # Display the text in the QLabel
        self.label.setText(f"Entered: {text}")

        # Clear the QLineEdit
        self.line_edit.clear()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

설명

  1. QLineEdit 생성
  • self.line_edit = QLineEdit(self): QLineEdit 인스턴스를 생성합니다.
  • self.line_edit.setPlaceholderText("Type something and press Enter"): QLineEdit에 플레이스홀더 텍스트를 설정합니다.
  1. returnPressed 시그널 연결
  • self.line_edit.returnPressed.connect(self.on_return_pressed): returnPressed 시그널을 on_return_pressed 슬롯 메서드에 연결합니다. 이는 엔터 키를 눌렀을 때 호출될 메서드입니다.
  1. on_return_pressed 메서드 :
  • text = self.line_edit.text(): QLineEdit에서 입력된 텍스트를 가져옵니다.
  • self.label.setText(f"Entered: {text}"): 가져온 텍스트를 QLabel에 표시합니다.
  • self.line_edit.clear(): QLineEdit의 텍스트를 지웁니다.

이 코드를 사용하면 사용자가 QLineEdit에 텍스트를 입력하고 엔터 키를 누르면 해당 텍스트가 라벨에 표시되며, QLineEdit이 비워집니다. 이와 같은 방식으로 QLineEdit에서 엔터 키를 눌렀을 때 특정 동작을 수행할 수 있습니다.