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博客