Qt 编程 —— 输入对话框(QInputDialog)的使用 【学习笔记】

1、简述

 QInputDialog类提供了一个简单的便捷对话框,可以从用户那里获取用户录入的单个值。当前Qt提供了五个静态接口函数用于获取常用的数据类型参数:getText(…),getMultiLineText(…),getInt(…),getDouble(…)和getItem(…)。下面我们将会对着三个函数依次进行介绍。

头文件: #include <QInputDialog>
qmake:QT += widgets


备注: 文章中举例代码中涉及到了多语言翻译,如果存在疑问,可以翻看《Qt 编程 —— 如何实现多语言翻译功能(含源码)》这篇文章。

2、接口介绍

//double类型的接口
double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())

//int类型的接口
int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())

//单选框获取选中的某一列
QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

//多文本输入框
QString getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

//单文本输入框
QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

2.1、浮点类型数据输入框 getDouble(…)

参数介绍:
double getDouble( 
QWidget *parent,   //指向父对象的指针 
const QString &title,  //窗口标题
const QString &label,  //窗口提示文本信息
double value = 0,  //默认值
double min = -2147483647,  //最小值范围
double max = 2147483647,  //最大值范围
int decimals = 1,  //步长(单次操作,值递增幅度)
bool *ok = Q_NULLPTR,  //用户是否点击确认按钮(确认:OK,  取消:Cancel)
Qt::WindowFlags flags = Qt::WindowFlags())//其他窗口标志,一般直接使用默认值

返回值:double 类型
如果点击“OK”按钮:返回当前输入框的值。
如果点击“Cancel”按钮:返回当设置的默认值。

举例:

//获取输入整数
bool bRet = false;

//qApp->translate(c_strQtGuiApplication, c_strInputPaswd) 多文本翻译
double dbRet = QInputDialog::getDouble(this, qApp->translate(c_strQtGuiApplication, c_strInputPaswd),
				qApp->translate(c_strQtGuiApplication, c_strPaswd), 0.0, 0.0, 100.0, 1, &bRet);
if (bRet)
{
    
    
	qDebug() << "press ok iRet = " << dbRet;
}
else
{
    
    
	qDebug() << "press Cancel iRet = " << dbRet;
}

演示效果:
在这里插入图片描述

2.2、整形数据类型输入框 getInt(…)

int getInt(
QWidget *parent, //指向父对象的指针
const QString &title, //窗口标题
const QString &label, //窗口提示文本信息
int value = 0, //默认值
int min = -2147483647, //最小值范围
int max = 2147483647, //最大值范围
int step = 1, //步长(单次操作,值递增幅度)
bool *ok = Q_NULLPTR, //用户是否点击确认按钮(确认:OK,  取消:Cancel)
Qt::WindowFlags flags = Qt::WindowFlags())//其他窗口标志,一般直接使用默

返回值:double 类型
如果点击“OK”按钮:返回当前输入框的值。
如果点击“Cancel”按钮:返回当设置的默认值。

举例:

bool bRet = false;
//获取输入整数
double dbRet = QInputDialog::getDouble(this, qApp->translate(c_strQtGuiApplication, c_strInputPaswd),
				qApp->translate(c_strQtGuiApplication, c_strPaswd), 0.0, 0.0, 100.0, 1, &bRet);
if (bRet)
{
    
    
	qDebug() << "press ok iRet = " << dbRet;
}
else
{
    
    
	qDebug() << "press Cancel iRet = " << dbRet;
}

演示效果:
在这里插入图片描述

2.3、下拉选择框 getItem(…)

//单选框获取选中的某一列
QString getItem(
QWidget *parent, //指向父对象的指针
const QString &title, //窗口标题
const QString &label, //窗口提示文本信息
const QStringList &items, //选项列表
int current = 0, //默认选项值的编号
bool editable = true,  //是否可编辑
bool *ok = Q_NULLPTR,  //用户是否点击确认按钮(确认:OK,  取消:Cancel)
Qt::WindowFlags flags = Qt::WindowFlags(),  //其他窗口标志
Qt::InputMethodHints inputMethodHints = Qt::ImhNone)  //列表框风格

返回值:QString 类型
如果点击“OK”按钮:返回当前单选框选中的内容。
如果点击“Cancel”按钮:返回当设置的默认值。

举例:

bool bRet = false;

//获取列表选择数据
QStringList items;
items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");

QString item = QInputDialog::getItem(this, qApp->translate(c_strQtGuiApplication, c_strInputPaswd),
				qApp->translate(c_strQtGuiApplication, c_strPaswd), items, 0, true, &bRet, Qt::WindowFlags(), Qt::ImhHiddenText);
if (bRet && !item.isEmpty())
{
    
    
	qDebug() << "press ok item = " << item;
}
else
{
    
    
	qDebug() << "press Cancel item = " << item;
}

演示效果:
在这里插入图片描述

2.4、富文本编辑框 getMultiLineText(…)

//多文本输入框 
QString getMultiLineText(
QWidget *parent, 
const QString &title, 
const QString &label, 
const QString &text = QString(), //设置默认文本
bool *ok = Q_NULLPTR, 
Qt::WindowFlags flags = Qt::WindowFlags(), 
Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

返回值:QString 类型
如果点击“OK”按钮:返回当前富文本编辑框中的内容。
如果点击“Cancel”按钮:返回字符串。

举例:

bool bRet = false;

//富文本输入框 
QString text = QInputDialog::getMultiLineText(this, qApp->translate(c_strQtGuiApplication, c_strInputPaswd),
				qApp->translate(c_strQtGuiApplication, c_strPaswd), "hello\nworld\n123", &bRet);
if (bRet && !text.isEmpty())
{
    
    
	qDebug() << "press ok text = " << text;
}
else
{
    
    
	qDebug() << "press Cancel text = " << text;
}

演示效果:
在这里插入图片描述

2.5、单文本编辑框 getText(…)

//单文本输入框
QString getText(
QWidget *parent, 
const QString &title, 
const QString &label, 
QLineEdit::EchoMode mode = QLineEdit::Normal, //文本框样式
const QString &text = QString(),  //设置默认文本
bool *ok = Q_NULLPTR, 
Qt::WindowFlags flags = Qt::WindowFlags(), 
Qt::InputMethodHints inputMethodHints = Qt::ImhNone)


返回值:QString 类型
如果点击“OK”按钮:返回当前单文本编辑框中的内容。
如果点击“Cancel”按钮:返回空字符串。

举例:

bool bRet = false;

//单文本输入框 
QString text = QInputDialog::getText(this, qApp->translate(c_strQtGuiApplication, c_strInputPaswd),
				qApp->translate(c_strQtGuiApplication, c_strPaswd), QLineEdit::Normal, "123456", &bRet);
if (bRet && !text.isEmpty())
{
    
    
	qDebug() << "press ok text = " << text;
}
else
{
    
    
	qDebug() << "press Cancel text = " << text;
}

演示效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Aliven888/article/details/113767549