PyQt 5 의 입력 대화 상자 사용 하기(QInputDialog)상세 설명

PyQt 5 에서 QInputDialog 를 사용 합 니 다.Qt 의 QInputDialog 류 는 사용자 의 단일 입력 정 보 를 얻 기 위해 간단 한 대화 상 자 를 제공 합 니 다.4 가지 데이터 형식의 입력 을 제공 합 니 다.
1)문자열 형(방법=QInputDialog.getText);
2)Int 형식 데이터(방법=QInputDialog.getInt);
3)double 형식 데이터(방법=QInputDialog.getDouble);
4)드 롭 다운 목록 상자 의 항목(방법=QInputDialog.getItem).
QInputDialog 는 QDialog 에서 계승 하여 간단 한 입력 대화 상 자 를 제공 합 니 다.
class QInputDialog(QDialog)
| QInputDialog(QWidget parent=None, Qt.WindowFlags flags=0)
QInputDialog 프로필:
Qt 는 QInputDialog 클래스 를 제공 합 니 다.QInputDialogDialog 클래스 는 사용자 의 단일 입력 정 보 를 얻 기 위해 간단 하고 편리 한 대화 상 자 를 제공 합 니 다.현재 4 가지 데이터 형식의 입력 을 제공 합 니 다.문자열,Int 형식 데이터,double 형식 데이터 또는 드 롭 다운 목록 상자 의 항목 을 만 들 수 있 습 니 다.표준 입력 대화 상자 의 기본 구 조 는 다음 그림 과 같 습 니 다.
알림 탭 과 입력 컨트롤 이 포함 되 어 있 습 니 다.문자열 입력 상 자 를 그대로 호출 하면 QLine Edit 입 니 다.Int 형식 을 호출 하거나 형식 입력 상 자 를 보고 하면 QSpinBox 입 니 다.목록 항목 입력 상 자 를 호출 하면 QComboBox 입 니 다.입력 확인(OK)단추 와 입력 취소(Cancel)단추 도 포함 되 어 있 습 니 다.
QInputDialog 의 정적 함수
1、getText()
QInputDialog 의 getText()함수 팝 업 표준 문자열 입력 대화 상자,getText()함수 원형 은 다음 과 같 습 니 다.
QString getText(QWidget*parent,\#표준 입력 대화 상자 의 부모 창
const QString&title,\#대화 상자 의 제목 이름 입력
const QString&label,\#표준 입력 대화 상자 의 탭 알림
const QString&text=QString(),\#표준 문자열 입력 대화 상자 팝 업 시 QLine Edit 컨트롤 에 기본적으로 나타 나 는 텍스트
bool*ok=0,\#표준 입력 대화 상자 에 사용 할 단 추 를 표시 합 니 다.ok 이 true 이면 사용자 가 OK(확인)단 추 를 누 른 것 을 의미 합 니 다.ok 이 false 이면 Cancel(취소)단 추 를 누 른 것 을 의미 합 니 다.
Qt::WindowFlags flags=0,\#유명 표준 입력 대화 상자 의 창 표지
Qt::InputMethodHints inputMethodHints = Qt::ImhNone ); [static]
2、getItem()
QInputDialog 의 getItem()함수 팝 업 표준 항목 선택 대화 상자,getItem()함수 원형 은 다음 과 같 습 니 다.
QString getItem(QWidget*parent,표준 입력 대화 상자 의 부모 창
const QString&title,표준 입력 대화 상자 의 제목 이름
const QString&label,표준 입력 대화 상자 의 탭 알림
const QStringList&list,표준 입력 대화 상자 의 QComboBox 컨트롤 에 표 시 된 선택 가능 한 항목 을 QStringList 대상 으로 지정 합 니 다.
int current=0,표준 입력 대화 상자 의 QComboBox 컨트롤 에 표 시 된 선택 가능 한 항목 을 QStringList 대상 으로 지정 합 니 다.
bool editable=true,QComboBox 컨트롤 에 표 시 된 텍스트 를 편집 할 수 있 는 지 지정 합 니 다.
bool*ok=0,표준 입력 대화 상자 에 사용 할 여자 아이 가 트리거 되 었 습 니 다.ok 이 false 이면 사용자 가 Cancel(취소)단 추 를 눌 렀 음 을 표시 합 니 다.
Qt::WindowFlags f = 0 ) ; [static]표준 입력 대화 상자 에 사용 할 여자 아이 가 트리거 되 었 습 니 다.ok 이 false 이면 사용자 가 Cancel(취소)단 추 를 눌 렀 음 을 표시 합 니 다.
3、getInteger()
QInputDialog 의 getInteger()함수 팝 업 표준 int 형식 입력 대화 상자,getInteger()함수 원형 은 다음 과 같 습 니 다.
int getInteger(QWidget*parent,부모 창
const QString&title,제목 명
const QString&label,태그 알림
int value=0,지정 한 표준 입력 대화 상자 의 QSpinBox 컨트롤 기본 디 스 플레이 값
int minValue = -2147483647,
int maxValue=2147483647,QSpinBox 컨트롤 의 수치 범 위 를 지정 합 니 다.최소 및 최대 값 입 니 다.
int step=1,step 는 QSpinBox 컨트롤 의 스텝 값(즉 스텝 길이)을 지정 합 니 다.
bool * ok = 0,
Qt::WindowFlags f = 0 ) ;
4、getDouble()
QInputDialog 의 getDouble()함수 팝 업 표준 double 형식 입력 대화 상자,getDouble()함수 원형 은 다음 과 같 습 니 다.
double getDouble( QWidget * parent,
const QString & title,
const QString&label,태그 알림
double value=0,지정 한 표준 입력 대화 상자 의 QSpinBox 컨트롤 기본 디 스 플레이 값
double minValue = -2147483647,
double maxValue 2147483647,
int decimals=1,QSpinBox 컨트롤 의 부동 수의 소수점 자릿수 를 지정 합 니 다.
bool * ok = 0,
Qt::WindowFlags f = 0 ) ;
예시
1)문자열

def getText(self):
 text, okPressed = QInputDialog.getText(self, "Get text","Your name:", QLineEdit.Normal, "")
 if okPressed and text != '':
  print(text)
2)int

def getInteger(self):
  i, okPressed = QInputDialog.getInt(self, "Get integer","Percentage:", 28, 0, 100, 1)
  if okPressed:
   print(i)
3)double

def getDouble(self):
  d, okPressed = QInputDialog.getDouble(self, "Get double","Value:", 10.05, 0, 100, 10)
  if okPressed:
   print(d)
4)항목

def getChoice(self): #Get item/choice
 items = ("Red","Blue","Green")
 item, okPressed = QInputDialog.getItem(self, "Get item","Color:", items, 0, False)
 if okPressed and item:
  print(item)
간단 한 예 1[출처 를 인용 하 다]:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit
from PyQt5.QtGui import QIcon

class App(QWidget):

 def __init__(self):
  super().__init__()
  self.title = 'PyQt5 input dialogs - pythonspot.com'
  self.left = 10
  self.top = 10
  self.width = 640
  self.height = 480
  self.initUI()

 def initUI(self):
  self.setWindowTitle(self.title)
  self.setGeometry(self.left, self.top, self.width, self.height)

  self.getInteger()
  self.getText()
  self.getDouble()
  self.getChoice()

  self.show()

 def getInteger(self):
  i, okPressed = QInputDialog.getInt(self, "Get integer","Percentage:", 28, 0, 100, 1)
  if okPressed:
   print(i)

 def getDouble(self):
  d, okPressed = QInputDialog.getDouble(self, "Get double","Value:", 10.50, 0, 100, 10)
  if okPressed:
   print( d)

 def getChoice(self):
  items = ("Red","Blue","Green")
  item, okPressed = QInputDialog.getItem(self, "Get item","Color:", items, 0, False)
  if ok and item:
   print(item)

 def getText(self):
  text, okPressed = QInputDialog.getText(self, "Get text","Your name:", QLineEdit.Normal, "")
  if okPressed and text != '':
   print(text)

if __name__ == '__main__':
 app = QApplication(sys.argv)
 ex = App()
 sys.exit(app.exec_())
입력 대화 상자 사용 예 2:
방법 1>코드 로 만 들 기
참고 하 세 요https://www.jb51.net/article/163860.htm
방법 2>Qt 디자이너 로 만 들 기
step 1:Qt 디자이너 를 사용 하여 GUI 를 만 듭 니 다.다음 그림:

설명:
네 번 째 줄 컨트롤:생년월일(label)―labeldate――dateButton――Date Edit
맨 오른쪽 상단 의 컨트롤 은 Line Edit 상자 로 날 짜 를 입력 하 는 데 사 용 됩 니 다.이것 은 폐 기 된 컨트롤 로 삭제 할 수 없습니다.
그림 에서 두 번 째 열(label 로 표시)은 네 번 째 열(line Edit 로 표시)의 표시 결과 와 같 고 네 번 째 열 은 버튼 컨트롤 과 입력 기능 도 가지 고 있다.
step 2:ui 파일 로 저장 하고 my input dialog.py 파일 로 변환 하여 이 파일 을 실행 합 니 다.
my inpuutdialog.py 파일 의 클래스 이름 은:
class Ui_Dialog(object):
def setupUi(self, Dialog):
step 3:새 주 함수 파일 은 my input dialog main.py 입 니 다.이 파일 에 다음 코드 를 추가 합 니 다.

from PyQt5.QtWidgets import *
import sys
from MyInputDialog2 import Ui_Dialog

class MyDialog(QDialog,Ui_Dialog):
 def __init__(self):
  super(MyDialog,self).__init__()
  self.setupUi(self)
  self.setWindowTitle("       ")

  #6   
  self.nameButton.clicked.connect(self.inputName)
  self.sexButton.clicked.connect(self.inputSex)
  self.ageButton.clicked.connect(self.inputAge)
  self.dateButton.clicked.connect(self.inputDate2) # Date Edit
  self.dateButton.clicked.connect(self.inputDate1) #   
  self.HButton.clicked.connect(self.inputHeight)
  self.WButton.clicked.connect(self.inputWeight)
  #6 Label    
  #label_name,label_sex,label_age,label_date,label_h,label_w
  #7 LineEdit         ,           
  #namelineEdit,sexlineEdit,agelineEdit,datelineEdit,hlineEdit,wlineEdit,lovelineEdit


 def inputName(self):
  name2 = self.namelineEdit.text()
  name, ok = QInputDialog.getText(self, "   ",
          "       :",
          QLineEdit.Normal, self.label_name.text())
  if ok:
   self.label_name.setText(name)
   self.namelineEdit.setText(name)
  else:
   self.label_name.setText(name2)

 def inputSex(self):
  list = []
  list.append(" ")
  list.append(" ")
  sex, ok = QInputDialog.getItem(self, "  ", "     ", list)
  if ok:
   self.label_sex.setText(sex)
   self.sexlineEdit.setText(sex)

 def inputAge(self):
  age, ok = QInputDialog.getInt(self, "  ","     :",
          int(self.label_age.text()), 0, 150,4)

  if ok:
   self.label_age.setText(str(age))
   self.agelineEdit.setText(str(age))
 def inputDate1(self):
  dd, ok = QInputDialog.getText(self, "    ",
          "         :",
          QLineEdit.Normal, self.label_date.text())
  if ok:
   self.label_date.setText(dd)
   self.datelineEdit.setText(dd)
 def inputDate2(self):
  time = self.dateEdit.text()
  self.label_date.setText(str(time))

 def inputHeight(self):
  stature, ok = QInputDialog.getDouble(self, "  ",
            "     :",
            float(self.label_h.text()), -2300.0000, 2300.9999,4)
  if ok:
   self.label_h.setText(str(stature))
   self.hlineEdit.setText(str(stature))
 def inputWeight(self):
  stature, ok = QInputDialog.getDouble(self, "  ",
            "     :",
            float(self.label_w.text()), 0, 2300.00,2)
  if ok:
   self.label_w.setText(str(stature))
   self.wlineEdit.setText(str(stature))



if __name__ == "__main__":
 app = QApplication(sys.argv)
 main = MyDialog()
 main.show()
 sys.exit(app.exec_())
이 PyQt 5 에 대한 입력 대화 상자 사용(QInputDialog)에 대한 자세 한 설명 은 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 셨 으 면 좋 겠 습 니 다.여러분 들 도 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기