自学内容网 自学内容网

qt QInputDialog详解

1、概述

QInputDialog 是 Qt 框架中的一个对话框类,用于获取用户输入。它提供了简单的文本输入、整数输入、浮点数输入以及列表选择等功能。QInputDialog 继承自 QDialog,是一个模态对话框,通常用于请求用户输入单个值或进行简单的选择。

2、重要方法
  • QInputDialog(QWidget *parent = nullptr): 构造函数,创建一个新的 QInputDialog 对象。parent 是可选的父窗口参数。
  • static QString getText(QWidget *parent = nullptr, const QString &title = QString(), const QString &label = QString(), QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()): 静态函数,显示一个文本输入对话框并返回用户输入的文本。title 是对话框的标题,label 是输入字段旁边的标签,mode 是输入字段的回显模式(如密码模式),text 是默认输入的文本,ok 是一个指向布尔值的指针,用于指示用户是否点击了“确定”,flags 是对话框的窗口标志。
  • static int getInt(QWidget *parent = nullptr, const QString &title = QString(), const QString &label = QString(), int value = 0, int minValue = -2147483647, int maxValue = 2147483647, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()): 静态函数,显示一个整数输入对话框并返回用户输入的整数。参数与 getText 类似,但增加了 value(默认值)、minValue(最小值)和 maxValue(最大值)。
  • static double getDouble(QWidget *parent = nullptr, const QString &title = QString(), const QString &label = QString(), double value = 0.0, double minValue = -2147483647.0, double maxValue = 2147483647.0, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()): 静态函数,显示一个浮点数输入对话框并返回用户输入的浮点数。参数与 getInt 类似,但 valueminValue 和 maxValue 是双精度浮点数,decimals 指定了小数点后的位数。
  • static QListWidgetItem getItem(QWidget *parent = nullptr, const QString &title = QString(), const QString &label = QString(), const QStringList &items = QStringList(), int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()): 静态函数,显示一个列表选择对话框并返回用户选择的列表项。items 是可选项的列表,current 是默认选择的项。
  • void setInputMode(QInputDialog::InputMode mode): 设置输入对话框的模式(文本、整数、浮点数或列表)。
  • void setComboBoxItems(const QStringList &items): 当输入模式为列表时,设置列表项。
3、重要输入模式

以下是QInputDialog类中一些常见的输入模式及其简要介绍:

  • QLineEdit::Normal:正常文本输入模式。
  • QLineEdit::NoEcho:无回显模式。
  • QLineEdit::Password:密码输入模式。
  • QLineEdit::PasswordEcho0nEdit:编辑时显示密码输入模式。
#include <QApplication>  
#include <QWidget>  
#include <QLabel>  
#include <QPushButton>  
#include <QVBoxLayout>  
#include <QInputDialog>  
#include <QDebug>  
  
class InputDialogDemo : public QWidget {  
    Q_OBJECT  
  
public:  
    InputDialogDemo(QWidget *parent = nullptr) : QWidget(parent) {  
        QVBoxLayout *layout = new QVBoxLayout(this);  
  
        QLabel *label = new QLabel("请输入一些文本:", this);  
        layout->addWidget(label);  
  
        QPushButton *button = new QPushButton("打开输入对话框", this);  
        layout->addWidget(button);  
  
        connect(button, &QPushButton::clicked, this, &InputDialogDemo::onInputButtonClicked);  
  
        this->labelToUpdate = new QLabel("等待输入...", this);  
        layout->addWidget(this->labelToUpdate);  
  
        this->setLayout(layout);  
        this->setWindowTitle("输入对话框例子");  
    }  
  
private slots:  
    void onInputButtonClicked() {  
        bool ok;  
        QString text = QInputDialog::getText(this, "输入对话框", "请输入文本:", QLineEdit::Normal, "", &ok);  
        if (ok && !text.isEmpty()) {  
            this->labelToUpdate->setText("你输入了: " + text);  
            qDebug() << "用户输入的文本:" << text;  
        } else {  
            this->labelToUpdate->setText("未输入或取消");  
        }  
    }  
  
private:  
    QLabel *labelToUpdate;  
};  
  
int main(int argc, char *argv[]) {  
    QApplication app(argc, argv);  
  
    InputDialogDemo demo;  
    demo.show();  
  
    return app.exec();  
}  

觉得有帮助的话,打赏一下呗。。

           


原文地址:https://blog.csdn.net/ckg3824278/article/details/143510551

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!