一、QInputDialog简介
Qt提供了一个QInputDialog类,QInputDialogDialog类提供了一种简单方便的对话框来获得用户的单个输入信息,目前提供了4种数据类型的输入,可以使一个字符串、一个Int类型数据、一个double类型数据或者是一个下拉列表框的条目。一个标准输入对话框的基本结构如下图所示:
其中包含一个提示标签,一个输入控件。如实调用字符串输入框,则为一个QLineEdit;若是调用Int类型或都报了类型输入框,则为一个QSpinBox;若是调用列表条目输入框,则为一个QComboBox;还包括一个确定输入(OK)按钮和一个取消输入(Cancel)按钮。
输入的类型:
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的静态函数
2.1、getText()
QInputDialog的getText()函数弹出标准字符串输入对话框,getText()函数原型如下:
QString getText( QWidget * parent, # 标准输入对话框的父窗口
const QString & title, # 输入对话框的标题名
const QString & label,# 标准输入对话框的标签提示
const QString & text = QString(), # 标准字符串输入对话框弹出时QLineEdit控件中默认出现的文字
bool * ok = 0, # 用于指示标准输入对话框的哪个按钮被触发,若ok为true,则表示用户单击了OK(确定)按钮,若ok为false,则表示用户单击了Cancel(取消)按钮
Qt::WindowFlags flags = 0, # 知名标准输入对话框的窗体标识
Qt::InputMethodHints inputMethodHints = Qt::ImhNone
); [static]
2.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(取消)按钮;
2.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, 指定QSpinBoxBox控件的数值范围,最小和最大值
int step = 1, step指定QSpinBox控件的步进值(即步长)
bool * ok = 0,
Qt::WindowFlags f = 0
)
2.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
)
三、简单使用方法
3.1、字符串
def getText(self):
text,boolAction = QInputDialog.getText(self,'获取信息','请输入数据库名',QLineEdit.Normal)
if okPressed and text != '':
print(text)
3.2、int
def getInteger(self):
i, okPressed = QInputDialog.getInt(self,"选择数字对话框","选择一个数字:", 28, 0, 100, 1)
if okPressed:
print(i)
3.3、double
def getDouble(self):
d, okPressed = QInputDialog.getDouble(self, "浮点数","选择浮点数:", 10.05, 0, 100, 10)
if okPressed:
print(d)
3.4、条目
def getChoice(self): #Get item/choice
items = ("Red", "Blue", "Green")
item, okPressed = QInputDialog.getItem(self, "选择颜色对话框", "颜色:", items, 0, False)
if okPressed and item:
print(item)