参考: https://www.cnblogs.com/XJT2018/p/10208710.html
https://blog.csdn.net/panrenlong/article/details/79948261
含参数详解: https://blog.csdn.net/zhulove86/article/details/52515460
一、简介
QInputDialog类提供了一个简单的便捷对话框,可以从用户那里获取用户录入的单个值,它提供了4种数据类型的输入;每个输入都包含一个提示标签,一个输入控件;还包括一个确定输入(Ok)按钮和一个取消输入(Cancel)按钮。
字符串型(方法=QInputDialog.getText)---- QLineEdit
Int类型数据(方法=QInputDialog.getInt)---- QSpinBox
double类型数据(方法=QInputDialog.getDouble)----
下拉列表框的条目(方法=QInputDialog.getItem)---- QComboBox
二、部分代码
2.1 字符串
def getText(self):text, okPressed = QInputDialog.getText(self, "Get text","Your name:", QLineEdit.Normal, "")if okPressed and text != '':print(text)
2.2 int
def getInteger(self):i, okPressed = QInputDialog.getInt(self, "Get integer","Percentage:", 28, 0, 100, 1)if okPressed:print(i)
2.3 double
def getDouble(self):d, okPressed = QInputDialog.getDouble(self, "Get double","Value:", 10.05, 0, 100, 10)if okPressed:print(d)
2.4 条目
def getDouble(self):d, okPressed = QInputDialog.getDouble(self, "Get double","Value:", 10.05, 0, 100, 10)if okPressed:print(d)
三、例子
例 1
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit
from PyQt5.QtGui import QIconclass App(QWidget):def __init__(self):super().__init__()self.title = 'PyQt5 input dialogs - pythonspot.com'self.left = 10self.top = 10self.width = 640self.height = 480self.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 okPressed 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
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLabel, QInputDialog, QTextBrowser, QGridLayout)
import sys
from PyQt5.QtGui import QIconclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(500, 500, 500, 500)self.setWindowTitle("标准输入对话框")self.setWindowIcon(QIcon("11.ico"))gridLayout = QGridLayout()self.lb11 = QLabel("姓名:")self.lb12 = QLabel("xiong")self.btn1 = QPushButton("修改姓名")gridLayout.addWidget(self.lb11, 0, 0, 1, 1)gridLayout.addWidget(self.lb12, 0, 1, 1, 1)gridLayout.addWidget(self.btn1, 0, 2, 1, 1)self.lb21 = QLabel("年龄:")self.lb22 = QLabel("25")self.btn2 = QPushButton("修改年龄")gridLayout.addWidget(self.lb21, 1, 0, 1, 1)gridLayout.addWidget(self.lb22, 1, 1, 1, 1)gridLayout.addWidget(self.btn2, 1, 2, 1, 1)self.lb31 = QLabel("性别:")self.lb32 = QLabel("男")self.btn3 = QPushButton("修改性别")gridLayout.addWidget(self.lb31, 2, 0, 1, 1)gridLayout.addWidget(self.lb32, 2, 1, 1, 1)gridLayout.addWidget(self.btn3, 2, 2, 1, 1)self.lb41 = QLabel("身高(cm):")self.lb42 = QLabel("177.0")self.btn4 = QPushButton("修改身高")gridLayout.addWidget(self.lb41, 3, 0, 1, 1)gridLayout.addWidget(self.lb42, 3, 1, 1, 1)gridLayout.addWidget(self.btn4, 3, 2, 1, 1)self.lb51 = QLabel("基本信息:")self.textBrowser = QTextBrowser()self.btn5 = QPushButton("修改信息")gridLayout.addWidget(self.lb51, 4, 0, 1, 1)gridLayout.addWidget(self.textBrowser, 5, 0, 1, 3)gridLayout.addWidget(self.btn5, 4, 2, 1, 1)self.setLayout(gridLayout)self.btn1.clicked.connect(self.showDialog)self.btn2.clicked.connect(self.showDialog)self.btn3.clicked.connect(self.showDialog)self.btn4.clicked.connect(self.showDialog)self.btn5.clicked.connect(self.showDialog)def showDialog(self):sender = self.sender()if sender == self.btn1:text, ok = QInputDialog.getText(self, "修改姓名!", "请输入姓名:")if ok:self.lb12.setText(text)elif sender == self.btn2:text, ok = QInputDialog.getInt(self, "修改年龄!", "请输入年龄:", min=1)if ok:self.lb22.setText(str(text))elif sender == self.btn3:text, ok = QInputDialog.getItem(self, "修改性别!", "请输入性别:", ["男", "女", "人妖"])if ok:self.lb32.setText(text)elif sender == self.btn4:text, ok = QInputDialog.getDouble(self, "修改身高!", "请输入身高:", min=10.0)if ok:self.lb42.setText(str(text))elif sender == self.btn5:text, ok = QInputDialog.getMultiLineText(self, "修改信息!", "请输入基本信息:")if ok:self.textBrowser.setText(text)if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()ex.show()sys.exit(app.exec_())