Qt QInputDialog详解

1.简介

QInputDialog是一个对话框类,用于从用户那里获取一个单一的值。这个值可以是字符串、数字、或者一个列表中的选项。QInputDialog提供了一个方便的方式来快速创建一个输入对话框,无需自己从头开始构建。

QInputDialog支持多种输入类型:

  • QInputDialog::TextInput - 允许用户输入文本。
  • QInputDialog::IntInput - 允许用户输入整数。
  • QInputDialog::DoubleInput - 允许用户输入浮点数。

2.常用接口

设置对话框属性:

void setLabelText(const QString &text);
void setOkButtonText(const QString &text);
void setCancelButtonText(const QString &text);

获取输入值:静态方法

QString getText();
int getInt();
double getDouble();
QString getItem();

其他功能:设置对话框的选项,如组合框的项目、数字范围、输入模式等

void setComboBoxItems(const QStringList &items);
void setDoubleRange(double min, double max);
void setIntRange(int min, int max);
void setOptions(QInputDialog::InputDialogOptions options);
void setInputMode(QInputDialog::InputMode mode);

执行对话框:用于显示对话框并将其结果发送到指定对象的指定槽函数

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

3.代码示例

示例1

#include "widget.h"
#include "ui_widget.h"
#include <QInputDialog>
#include <QDir>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_btnDouble_clicked()
{
    double text = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),
                                         tr("score:"));

    ui->lineEdit->setText(QString::number(text));
}

void Widget::on_btnInt_clicked()
{
    int text = QInputDialog::getInt(this, tr("QInputDialog::getInt()"),
                                         tr("age:"));

    ui->lineEdit->setText(QString::number(text));
}

void Widget::on_btnText_clicked()
{
    bool ok;
    QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                         tr("User name:"), QLineEdit::Normal,
                                         QDir::home().dirName(), &ok);

    if (ok && !text.isEmpty())
        ui->lineEdit->setText(text);
}

示例2

#include "widget.h"
#include "ui_widget.h"
#include <QInputDialog>
#include <QDir>
#include <QStringList>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_btnItem_clicked()
{
    QStringList strSexItems;
    strSexItems<<("男")<<("女");
    bool isbool;
    QString strSexItem=QInputDialog::getItem(this,("标准输入对话框"),
                                             ("请输入性别"),
                                             strSexItems,0,false,&isbool);
    if(isbool && !strSexItem.isEmpty()){
        ui->lineEdit->setText(strSexItem);
    }
}

 4.更多推荐

libVLC 专栏介绍-CSDN博客

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍_qt opengl视频播放器-CSDN博客

QCharts -1.概述-CSDN博客

Qt QImageReader类介绍-CSDN博客

相关推荐

  1. Hive-DDL详解(超详细

    2024-05-11 11:54:03       58 阅读
  2. Hive-DML详解(超详细

    2024-05-11 11:54:03       57 阅读
  3. super详解

    2024-05-11 11:54:03       48 阅读
  4. scheduleatfixedrate详解

    2024-05-11 11:54:03       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 11:54:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 11:54:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 11:54:03       87 阅读
  4. Python语言-面向对象

    2024-05-11 11:54:03       96 阅读

热门阅读

  1. 低代码技术赋能未来乡村建设:创新与实践

    2024-05-11 11:54:03       34 阅读
  2. IT界常说的六大名言

    2024-05-11 11:54:03       29 阅读
  3. SERVER_DOWN 表示该服务器已经宕机或无法访问

    2024-05-11 11:54:03       32 阅读
  4. 代码随想录学习Day 35

    2024-05-11 11:54:03       36 阅读
  5. C语言:初学者和专家的分水岭

    2024-05-11 11:54:03       27 阅读
  6. 设计模式——访问者模式(Visitor)

    2024-05-11 11:54:03       32 阅读