本篇介绍 PyQt5 中 QInputDialog 类的四种对话框。
1). 整数输入框
(int, bool ok) QInputDialog.getInt (QWidget parent, QString title, QString label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, Qt.WindowFlags flags = 0)
参数有:父控件,标题,标签文本,初始值,最小值,最大值,微调框步长,窗口样式。
返回值:当前整数,是否确定
2)浮点数输入框
(float, bool ok) QInputDialog.getDouble (QWidget parent, QString title, QString label, float value = 0, float min = -2147483647, float max = 2147483647, int decimals = 1, Qt.WindowFlags flags = 0)
参数有:父控件,标题,标签文本,初始值,最小值,最大值,小数点后位数,窗口样式。
返回值:当前浮点数,是否确定
3)字符串输入框
(str, bool ok) QInputDialog.getText (QWidget parent, QString title, QString label,QLineEdit.EchoMode mode = QLineEdit.Normal,QString text = QString(), Qt.WindowFlags flags = 0)
参数有:父控件,标题,标签文本, 显示模式,初始字符串,窗口样式
其中显示模式有4种类型:
QLineEdit.Normal 正常模式,默认
QLineEdit.NoEcho 完全不显示输入内容,防止密码被偷窥,甚至连密码长度都隐藏
QLineEdit.Password 以星号显示所输入的字符
QLineEdit.PasswordEchoOnEdit 只在显示初始值或编辑完(QLineEdit失去焦点)后显示星号
返回值:当前字符串,是否确定
4)下拉列表对话框
(str, bool ok) InputDialog.getItem (QWidget parent, QString title, QString label, QStringList list, int current = 0, bool editable = True, Qt.WindowFlags flags = 0)
参数有:父控件,标题,标签文本,item字符串列表,初始索引,是否可编辑,窗口样式。
返回值:当前item字符串,是否确定
具体的运用可参考以下代码:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton,QInputDialog,QVBoxLayout,QLineEdit
class App(QWidget):
def __init__(self): super().__init__() self.title = 'PyQt5 input dialogs' self.initUI()
def initUI(self): self.setWindowTitle(self.title) vlayout =QVBoxLayout() bt1 = QPushButton("整数输入框") bt2 = QPushButton("浮点数输入框") bt3 = QPushButton("字符串输入框") bt4 = QPushButton("下拉列表对话框") vlayout. addWidget(bt1) vlayout. addWidget(bt2) vlayout. addWidget(bt3) vlayout. addWidget(bt4) self.setLayout(vlayout) bt1.clicked.connect(self.getInteger) bt2.clicked.connect(self.getDouble) bt3.clicked.connect(self.getText) bt4.clicked.connect(self.getChoice)
self.resize(300,100)
def getInteger(self): i, okPressed = QInputDialog.getInt(self, "Get integer","输入整数:", 2, 0, 100, 1) if okPressed: print(i)
def getDouble(self): d, okPressed = QInputDialog.getDouble(self, "Get double","Value:", 10.50, 0, 100, 5) if okPressed: print( d)
def getText(self): text, okPressed = QInputDialog.getText(self, "Get text","Your name:", QLineEdit.PasswordEchoOnEdit, "initiaial text") if okPressed: print(text) print(type(text)) def getChoice(self): items = ["春","夏","秋","冬"] item, okPressed = QInputDialog.getItem(self, "Get item","季节:", items, 1, False) if okPressed : print(item)
if __name__ == '__main__': app = QApplication(sys.argv) haha = App() haha.show() sys.exit(app.exec_())
本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!