QInputDialog 输入对话框
# 打开一个输入Int类型数据的对话框,返回包含输入的数据和是否按下确认按钮的元组
getInt(parent, str, str, value, min, max, step, flags) -> Tuple[int, bool]
# getDouble(父对象, 标题, 提示内容, 默认值, 最小值, 最大值, 步长, 窗口标志位设置)
# getInt(QWidget, str, str, value: int = 0, min: int = -2147483647, max: int = 2147483647, step: int = 1, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) -> Tuple[int, bool]
# 打开一个输入Double类型数据的对话框,返回包含输入的数据和是否按下确认按钮的元组
getDouble(parent, str, str, value, min, max, decimals, flags) -> Tuple[float, bool]
# getDouble(父对象, 标题, 提示内容, 默认值, 最小值, 最大值, 小数位数, 窗口标志位设置)
# getDouble(QWidget, str, str, value: float = 0, min: float = -2147483647, max: float = 2147483647, decimals: int = 1, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) -> Tuple[float, bool]
# 打开一个输入Str类型数据的单行文本对话框,返回包含输入的内容和是否按下确认按钮的元组
getText(parent, str, str, echo, text, flags, inputMethndHints) -> Tuple[str, bool]
# getText(父对象, 标题, 提示内容, 内容显示模式(明文/密文), 默认值, 窗口标志位设置, )
# getText(QWidget, str, str, echo: QLineEdit.EchoMode = QLineEdit.Normal, text: str = '', flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(), inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]
# 打开一个输入Str类型数据的多行文本对话框,返回包含输入的内容和是否按下确认按钮的元组
getMultiLineText(parent, str, str, text, flags, inputMethndHints) -> Tuple[str, bool]
# getText(父对象, 标题, 提示内容, 默认值, 窗口标志位设置, )
# getMultiLineText(QWidget, str, str, text: str = '', flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(), inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]
# 打开一个下拉列表选项框对话框,返回包含选择的条目内容和是否按下确认按钮的元组
getItem(parent, str, str, Iterable[str], current, editable, flags, inputMethodHints)
# getItem(父对象, 标题, 提示内容, 迭代器设置下拉选项内容, 默认显示第几条, 下拉框是否可以被编辑, 窗口标志位设置,)
# getItem(QWidget, str, str, Iterable[str], current: int = 0, editable: bool = True, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(), inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]
QInputDialog(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
setOption(self, QInputDialog.InputDialogOption, on: bool = True) # 设置选项,指定选项是否生效
setOptions(self, Union[QInputDialog.InputDialogOptions, QInputDialog.InputDialogOption]) # 设置多个选项
# 参数 QInputDialog.InputDialogOption
# QInputDialog.NoButtons # 不显示“ 确定”和“ 取消”按钮(对“实时对话框”有用)。
# QInputDialog.UseListViewForComboBoxItems # 使用QListView而不是不可编辑的QComboBox来显示使用setComboBoxItems()设置的项目。
# QInputDialog.UsePlainTextEditForTextInput # 使用QPlainTextEdit进行多行文本输入。该值在5.2中引入。
testOption(self, QInputDialog.InputDialogOption) -> bool # 测试选项是否生效
options(self) -> QInputDialog.InputDialogOptions # 获取所有生效选项
setInputMode(self, QInputDialog.InputMode) # 设置输入模式
# 参数QInputDialog.InputMode
# TextInput: # 输入文本
# IntInput: # 输入Int类型数据
# DoubleInput: # 输入Double类型数据
inputMode(self) -> QInputDialog.InputMode # 获取输入模式
# 示例
inputd1.setInputMode(QInputDialog.TextInput) # 单行文本模式
inputd2.setInputMode(QInputDialog.IntInput) # Int类型数据
inputd3.setInputMode(QInputDialog.DoubleInput) # Double类型数据
inputd4.setComboBoxItems(['1','2','3']) # 直接设置下拉选项使其成下拉选项对话框
inputd5.setOption(QInputDialog.UseListViewForComboBoxItems) # 通过选项设置,设置ComboBox显示为QListView模式
inputd5.setComboBoxItems(['a','b','c'])
setLabelText(str) # 设置提示内容文本
labelText(self) -> str # 获取提示内容文本
setOkButtonText(str) # 设置确定按钮文本
setCancelButtonText(str) # 设置取消按钮文本
setTextEchoMode(self, QLineEdit.EchoMode) # 设置内容显示模式
textEchoMode(self) -> QLineEdit.EchoMode # 获取内容显示模式
setTextValue(self, str) # 设置默认显示内容
textValue(self) -> str # 获取默认显示内容
setIntMaximum(self, int) # 设置最大值
intMaximum(self) -> int # 获取最大值
setIntMinimum(self, int) # 设置最小值
intMinimum(self) -> int # 获取最小值
setIntRange(self, int, int) # 设置一个取值范围
setIntStep(self, int) # 设置步长
intStep(self) -> int # 获取步长
setIntValue(self, int) # 设置显示默认值
intValue(self) -> int # 获取显示默认值
setDoubleMaximum(self, float) # 设置最大值
doubleMaximum() -> float # 获取最大值
setDoubleMinimum(self, float) # 设置最小值
doubleMinimum(self) -> float # 获取最小值
setDoubleRange(self, float, float) # 设置一个取值范围
setDoubleDecimals(self, int) # 设置保留小数位
doubleDecimals() -> int # 获取保留小数位
setDoubleStep(self, float) # 设置步长
doubleStep(self) -> float # 获取步长
setDoubleValue(self, float) # 设置显示默认值
doubleValue(self) -> float # 获取显示默认值
setComboBoxItems(self, Iterable[str]) # 通过迭代器设置下拉列表选项
comboBoxItems(self) -> List[str] # 获取下拉列表选项,返回列表
setComboBoxEditable(self, bool) # 设置下拉框是否可以编辑
isComboBoxEditable(self) -> bool # 判断下拉框是否可以编辑
intValueChanged(int value) # 整形数据对话框,值发生改变时发射信号,传递当前值
intValueSelected(int value) # 整形数据对话框,值最终被选中时发射信号,传递当前值
doubleValueChanged(double value) # Double类型数据对话框,值发生改变时发射信号,传递当前值
doubleValueSelected(double value) # Double类型数据对话框,值最终被选中时发射信号,传递当前值
textValueChanged(text_str) # 文本对话框,值发生改变时发射信号,传递当前值
textValueSelected(text_str) # 文本对话框,值最终被选中时发射信号,传递当前值
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QInputDialog-静态方法')
self.resize(500, 300)
self.setWindowIcon(QIcon('../ico/logo.ico'))
self.method_list()
def method_list(self):
self.child_add()
def child_add(self):
# result = QInputDialog.getInt(self, 'Int类型输入框', '请输入一个整数', 5, 1, 20, 2)
# result = QInputDialog.getDouble(self, 'Double输入框','请输入一个小数',1.35, decimals=3)
# result = QInputDialog.getText(self, '单行文本输入框','请输入内容', echo=QLineEdit.PasswordEchoOnEdit, text='请输入你的姓名')
# result = QInputDialog.getMultiLineText(self, '多行文本输入框','请输入详细信息','这里输入详细信息')
result = QInputDialog.getItem(self,'下拉选项对话框','请选择你的信息',['湖南','湖北','四川','广东'],current=3,editable=True)
if result[1]:
print(result[0])
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.resize(500, 500)
window.setWindowTitle('QInputDialog-功能作用')
# 构造函数
inputd1 = QInputDialog(window)
inputd2 = QInputDialog(window)
inputd3 = QInputDialog(window)
inputd4 = QInputDialog(window)
inputd5 = QInputDialog(window)
# 选项设置
# inputd.setOption(QInputDialog.NoButtons, True)
# 设置输入模式
inputd1.setInputMode(QInputDialog.TextInput) # 单行文本模式
inputd2.setInputMode(QInputDialog.IntInput) # Int类型数据
inputd3.setInputMode(QInputDialog.DoubleInput) # Double类型数据
inputd4.setComboBoxItems(['1','2','3']) # 直接设置下拉选项使其成下拉选项对话框
inputd5.setOption(QInputDialog.UseListViewForComboBoxItems) # 通过选项设置,设置ComboBox显示为QListView模式
inputd5.setComboBoxItems(['a','b','c'])
# 设置标题
inputd1.setWindowTitle('inputd1')
inputd2.setWindowTitle('inputd2')
inputd3.setWindowTitle('inputd3')
inputd4.setWindowTitle('inputd4')
inputd5.setWindowTitle('inputd5')
# 界面文本设置
inputd1.setLabelText('请输入内容')
inputd1.setOkButtonText('疯子的确定')
inputd1.setCancelButtonText('疯子的取消')
inputd2.setLabelText('请输入一个Int数据')
inputd2.setOkButtonText('疯子的OK')
inputd2.setCancelButtonText('疯子的NO')
inputd3.setLabelText('请输入一个Double数据')
inputd3.setOkButtonText('疯子的确定')
inputd3.setCancelButtonText('疯子的取消')
# 值设置
# 字符串对话框
inputd1.setTextEchoMode(QLineEdit.Password) # 设置显示模式(明文/密文/编辑明文显示密文)
inputd1.setTextValue("默认显示文本") # 设置默认显示内容
# 整型对话框
inputd2.setIntMaximum(100) # 设置最大值
inputd2.setIntMinimum(10) # 设置最小值
inputd2.setIntRange(20, 80) # 设置取值范围
inputd2.setIntStep(5) # 设置步长
inputd2.setIntValue(33) # 设置默认显示值
# 浮点类型对话框
inputd3.setDoubleMaximum(100.88) # 设置最大值
inputd3.setDoubleMinimum(10.99) # 设置最小值
inputd3.setDoubleRange(20.99, 80.88) # 设置取值范围
inputd3.setDoubleStep(0.01) # 设置步长
inputd3.setDoubleValue(33.33) # 设置默认显示值
inputd3.setDoubleDecimals(3) # 设置保留小数位
# 下拉选项对话框
inputd4.setComboBoxItems(['88','99','77','66']) # 设置下拉选项
inputd4.setComboBoxEditable(True) # 设置下拉框是否可以被编辑
# 显示对话框:show()/open()/exec()
inputd1.show()
inputd2.show()
inputd3.show()
inputd4.show()
inputd5.show()
window.show()
sys.exit(app.exec_())
from PyQt5.Qt import *
import sys
class Windows(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QInputDialog-可用信号')
self.resize(500, 500)
self.widget_list()
def widget_list(self):
self.add_widget()
def add_widget(self):
input1 = QInputDialog(self)
input2 = QInputDialog(self)
input3 = QInputDialog(self)
input1.setInputMode(QInputDialog.TextInput)
input2.setInputMode(QInputDialog.IntInput)
input3.setInputMode(QInputDialog.DoubleInput)
btn1 = QPushButton('文本对话框', self)
btn2 = QPushButton('整型对话框', self)
btn3 = QPushButton('浮点对话框', self)
btn1.move(10, 50)
btn2.move(110, 50)
btn3.move(210, 50)
btn1.clicked.connect(lambda :input1.show())
btn2.clicked.connect(lambda :input2.show())
btn3.clicked.connect(lambda :input3.show())
input1.textValueChanged.connect(lambda val: print('字符串文本发生了改变', val))
input1.textValueSelected.connect(lambda val: print('字符串文本被选中了', val))
input2.intValueChanged.connect(lambda val: print('整型数据发生了改变', val))
input2.intValueSelected.connect(lambda val: print('整型数据被选中了', val))
input3.doubleValueChanged.connect(lambda val: print('浮点数据发生了改变', val))
input3.doubleValueSelected.connect(lambda val: print('浮点数据被选中了', val))
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Windows()
window.show()
sys.exit(app.exec_())