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

一、前言

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

        对话框窗口 QDialog

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

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

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:浮点型输入
QInputDialog::InputMode inputMode() const
void setInputMode(QInputDialog::InputMode mode)

2、cancelButtonText

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

QString cancelButtonText() const
void setCancelButtonText(const QString &text)

3、okButtonText

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

QString okButtonText() const
void setOkButtonText(const QString &text)

4、comboBoxEditable

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

bool isComboBoxEditable() const
void setComboBoxEditable(bool editable)

5、comboBoxItems

        该属性表示下拉框选项。

QStringList comboBoxItems() const
void setComboBoxItems(const QStringList &items)

6、doubleDecimals

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

int doubleDecimals() const
void setDoubleDecimals(int decimals)

7、doubleMinimum

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

double doubleMinimum() const
void setDoubleMinimum(double min)

8、doubleMaximum

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

double doubleMaximum() const
void setDoubleMaximum(double max)

9、doubleStep

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

double doubleStep() const
void setDoubleStep(double step)

10、doubleValue

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

double doubleValue() const
void setDoubleValue(double value)

11、intMaximum

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

int intMaximum() const
void setIntMaximum(int max)

12、intMinimum

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

int intMinimum() const
void setIntMinimum(int min)

13、intStep

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

int intStep() const
void setIntStep(int step)

14、intStep

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

int intValue() const
void setIntValue(int value)

15、labelText

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

QString labelText() const
void setLabelText(const QString &text)

16、options

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

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

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

18、textValue

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

QString textValue() const
void setTextValue(const QString &text)

19、公共函数

1)open

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

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

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

void open(QObject *receiver, const char *member)

20、信号

1)doubleValueChanged

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

void doubleValueChanged(double value)
 2)doubleValueSelected

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

void doubleValueSelected(double value)
 3)intValueChanged

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

void intValueChanged(int value)
  4)intValueChanged

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

 void intValueSelected(int value)
5)textValueChanged

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

void textValueChanged(const QString &text)
 6)textValueChanged

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

void textValueSelected(const QString &text)
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波塞冬~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值