본문 바로가기

프로그래밍/PyQt5 GUI

37. QInputDialog

QInputDialog Class는 사용자가 간단한 값을 입력할 때 사용하는 대화창입니다. 입력 값은 숫자, 문자열, 리스트에서 선택한 항목 등이 될 수 있습니다. (QInputDialog 공식 문서) 참고

입력값의 형태에 따라 아래와 같이 다섯 개의 유용한 메서드가 제공됩니다.

  • getText()
  • getMultiLineText()
  • getInt()
  • getDouble()
  • getItem()

37-1 예제: ex36

import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLineEdit, QInputDialog)

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.btn = QPushButton('Dialog', self)
        self.btn.move(30, 30)
        self.btn.clicked.connect(self.showDialog)

        self.le = QLineEdit(self)
        self.le.setEnabled(False)
        self.le.move(120, 32)

        self.setWindowTitle('QInputDialog')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def showDialog(self):
        (text, ok) = QInputDialog.getText(self, 'Input Dialog', 'Enter your name: ')

        if ok:
            self.le.setText(str(text))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

37-2 설명

def showDialog(self):
    (text, ok) = QInputDialog.getText(self, 'Input Dialog', 'Enter your name: ')

QInputDialog 위젯의 getText() 메서드를 통하여 대화창이 나타납니다. 첫 번째 매개변수는 대화창이 나타날 부모창이고, 두 번째 매개변수는 대화창의 제목, 세 번째 매개변수는 대화창 안에 보여질 메시지를 의미합니다. 입력 대화창은 입력한 텍스트와 불(Boolean) 값을 반환합니다.

텍스트를 입력한 후 'OK' 버튼을 누르면 불 값은 True, 'Cancel' 버튼을 누르면 불 값은 False가 됩니다.

if ok:
   self.le.setText(str(text))

입력한 값을 setText() 메서드를 통해 줄 편집 위젯에 표시되도록 합니다.

37-3 결과

'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글

39. QFontDialog  (0) 2021.07.28
38. QColorDialog  (0) 2021.07.27
36. QTableWidget  (0) 2021.07.27
34. QTextEdit  (0) 2021.07.27
33. QTextBrowser  (0) 2021.07.27