Profile picture

[Python / GUI] QLineEdit에 숫자만 입력받도록 하기

JaehyoJJAng2024년 09월 10일

개요

QLineEdit 위젯에서 숫자만 입력받고, 입력 가능 길이를 제한하는 방법에 대해 기록해보려고 한다.


코드 구현

  • 1. 숫자만 입력하도록 설정: QIntValidator 또는 QDoubleValidator 사용
  • 2. 입력 길이 제한: setMaxLength() 메소드 사용

from PySide6.QtWidgets import QApplication, QLineEdit, QVBoxLayout, QWidget
from PySide6.QtGui import QIntValidator

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # QLineEdit 생성
        self.line_edit = QLineEdit(self)
        
        # 숫자만 입력받도록 QIntValidator 설정
        int_validator = QIntValidator(0, 9999, self)  # 0부터 9999까지 숫자만 허용
        self.line_edit.setValidator(int_validator)
        
        # 입력 가능한 길이를 제한
        self.line_edit.setMaxLength(5)  # 최대 5자리 입력 가능
        
        # 레이아웃 설정
        layout = QVBoxLayout()
        layout.addWidget(self.line_edit)
        self.setLayout(layout)
        
        self.setWindowTitle("숫자만 입력받기")
        self.resize(300, 100)

if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec()

Loading script...