QInputDialog


../_images/5_1_qinputdialog_sample.png

입력 다이얼로그 (QInputDialog)는 사용자가 간단한 값을 입력할 때 사용하는 다이얼로그입니다.

입력값은 숫자, 문자열, 리스트에서 선택한 항목 등이 될 수 있습니다. (QInputDialog 공식 문서 참고)

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

  • getText()

  • getMultiLineText()

  • getInt()

  • getDouble()

  • getItem()

예제에서는 getText() 메서드를 사용합니다.


예제

## Ex 6-1. QInputDialog.

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.move(120, 35)

        self.setWindowTitle('Input dialog')
        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_())

푸시 버튼 (QPushButton)과 줄 편집기 (QLineEdit) 위젯을 하나씩 만들었습니다.

버튼을 누르면 입력 다이얼로그 (input dialog)가 나타나고, 텍스트를 입력받아서 줄 편집 위젯에 표시합니다.



설명

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

이 코드를 통해 입력 대화창이 나타납니다.

두번째 매개변수는 대화창의 타이틀, 세번째 매개변수는 대화창 안에 보여질 메세지를 의미합니다. 입력 다이얼로그는 입력한 텍스트와 불 (Boolean) 값을 반환합니다.

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



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

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



결과

../_images/5_1_qinputdialog.png ../_images/5_1_qinputdialog_mac.png

그림 6-1. 입력 다이얼로그.


관련 페이지


이전글/다음글

다음글 :