Qt应用开发(基础篇)——输入对话框 QInputDialog

一、前言

QInputDialog 类继承于QDialog,是一个简单方便的对话框,用于从用户获取单个值。

对话框窗口 QDialog

QInputDialog输入对话框带有一个文本标签、一个输入框和标准按钮。输入内容可以字符、数字和选项,文本标签用来告诉用户应该要输入什么。

和其他的QDialog拓展类一样QInputDialog同样拥有多种静态函数创建的方式:getText()getMultiLineText()getInt()getDouble(),这些静态方法的使用方式都差不多。

cpp 复制代码
bool ok;
QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                          tr("User name:"), QLineEdit::Normal,
                                          QDir::home().dirName(), &ok);
if (ok && !text.isEmpty())
   textLabel->setText(text);

二、QInputDialog类

1、inputMode

该属性表示对话框要输入的类型,分别有:

  • TextInput:文本输入
  • IntInput:整形输入
  • DoubleInput:浮点型输入
cpp 复制代码
QInputDialog::InputMode inputMode() const
void setInputMode(QInputDialog::InputMode mode)

2、cancelButtonText

该属性表示退出按钮的文本。

cpp 复制代码
QString cancelButtonText() const
void setCancelButtonText(const QString &text)

3、okButtonText

该属性表示确认按钮显示的文本内容。

cpp 复制代码
QString okButtonText() const
void setOkButtonText(const QString &text)

4、comboBoxEditable

该属性表示下拉框是否可编辑。

cpp 复制代码
bool isComboBoxEditable() const
void setComboBoxEditable(bool editable)

5、comboBoxItems

该属性表示下拉框选项。

cpp 复制代码
QStringList comboBoxItems() const
void setComboBoxItems(const QStringList &items)

6、doubleDecimals

该属性表示浮点数的精度,就是几位小数,inputMode 需设置为DoubleInput

cpp 复制代码
int doubleDecimals() const
void setDoubleDecimals(int decimals)

7、doubleMinimum

该属性表示浮点型输入的最小值,inputMode 需设置为DoubleInput

cpp 复制代码
double doubleMinimum() const
void setDoubleMinimum(double min)

8、doubleMaximum

该属性表示浮点型输入的最大值,inputMode 需设置为DoubleInput

cpp 复制代码
double doubleMaximum() const
void setDoubleMaximum(double max)

9、doubleStep

该属性表示浮点型输入的步长,inputMode 需设置为DoubleInput

cpp 复制代码
double doubleStep() const
void setDoubleStep(double step)

10、doubleValue

该属性表示浮点型输入的当前值,inputMode 需设置为DoubleInput

cpp 复制代码
double doubleValue() const
void setDoubleValue(double value)

11、intMaximum

该属性表示整形输入的最大值,inputMode 需设置为IntInput

cpp 复制代码
int intMaximum() const
void setIntMaximum(int max)

12、intMinimum

该属性表示整形输入的最小值,inputMode 需设置为IntInput

cpp 复制代码
int intMinimum() const
void setIntMinimum(int min)

13、intStep

该属性表示整形输入的步长,inputMode 需设置为IntInput

cpp 复制代码
int intStep() const
void setIntStep(int step)

14、intStep

该属性表示整形输入的当前值,inputMode 需设置为IntInput

cpp 复制代码
int intValue() const
void setIntValue(int value)

15、labelText

该属性表示当前文本内容。

cpp 复制代码
QString labelText() const
void setLabelText(const QString &text)

16、options

该属性表示对话框的显示策略选项。

cpp 复制代码
QInputDialog::InputDialogOptions options() const
void setOptions(QInputDialog::InputDialogOptions options)

void setOption(QInputDialog::InputDialogOption option, bool on = true)
bool testOption(QInputDialog::InputDialogOption option) const
QInputDialog::InputDialogOption 描述
NoButtons 不显示确认和取消按钮
UseListViewForComboBoxItems 使用QListView而不是不可编辑的QComboBox来显示用setComboBoxItems()设置的项
UsePlainTextEditForTextInput 使用QPlainTextEdit进行多行文本输入

17、textEchoMode

该属性表示文本回显模式,默认为Normal

cpp 复制代码
QLineEdit::EchoMode textEchoMode() const
void setTextEchoMode(QLineEdit::EchoMode mode)
QLineEdit::EchoMode 描述
Normal 显示输入的字符
NoEcho 不要显示任何东西。这可能适用于连密码长度都要保密的密码。
Password 显示平台相关的密码掩码字符,而不是实际输入的字符。
PasswordEchoOnEdit 在编辑时显示输入的字符,然后显示与Password相同的字符。

18、textValue

该属性表示当前框显示的文本,inputMode 需设置为 TextInput

cpp 复制代码
QString textValue() const
void setTextValue(const QString &text)

19、公共函数

1)open

将一个信号连接到由接收器和成员指定的插槽。特定的信号取决于成员中指定的参数。

  • 如果成员的第一个参数是QString,使用textValueSelected()
  • 如果member的第一个参数是int,使用intValueSelected()
  • 如果成员的第一个参数是双精度类型,使用doubleValueSelected()
  • 如果成员没有参数,则使用accept()。

信号槽的连接在对话框关闭的时候会自动断开。

cpp 复制代码
void open(QObject *receiver, const char *member)

20、信号

1)doubleValueChanged

inputModeDoubleInput的时候,改变对话框内容都会触发此信号。

cpp 复制代码
void doubleValueChanged(double value)

2)doubleValueSelected

inputModeDoubleInput的时候,用户通过接受对话框选择文本触发该信号。

cpp 复制代码
void doubleValueSelected(double value)

3)intValueChanged

inputModeIntInput的时候,改变对话框内容都会触发此信号。

cpp 复制代码
void intValueChanged(int value)

4)intValueChanged

inputModeIntInput的时候,用户通过接受对话框选择文本触发该信号。

cpp 复制代码
 void intValueSelected(int value)

5)textValueChanged

inputModeTextInput的时候,改变对话框内容都会触发此信号。

cpp 复制代码
void textValueChanged(const QString &text)

6)textValueChanged

inputModeTextInput的时候,用户通过接受对话框选择文本触发该信号。

cpp 复制代码
void textValueSelected(const QString &text)
相关推荐
唐诺4 小时前
几种广泛使用的 C++ 编译器
c++·编译器
mahuifa4 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
冷眼看人间恩怨4 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
红龙创客5 小时前
某狐畅游24校招-C++开发岗笔试(单选题)
开发语言·c++
Lenyiin5 小时前
第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ
c++·算法·leetcode·周赛·lenyiin
yuanbenshidiaos6 小时前
c++---------数据类型
java·jvm·c++
十年一梦实验室7 小时前
【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
开发语言·c++·线性代数·矩阵
taoyong0017 小时前
代码随想录算法训练营第十一天-239.滑动窗口最大值
c++·算法
这是我587 小时前
C++打小怪游戏
c++·其他·游戏·visual studio·小怪·大型·怪物
fpcc7 小时前
跟我学c++中级篇——C++中的缓存利用
c++·缓存