QInputDialog 输入对话框

QInputDialog是Qt框架中的对话框组件,用于获取用户的文本、数字或日期等输入。通过静态函数getXXX()(如getText(), getInt(), getDate()等)进行调用,能预设初始值,并可自定义对话框属性,如标题和输入范围。" 43989689,1342402,Hadoop集群日志管理与配置,"['Hadoop', '日志', '大数据开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QInputDialog

QInputDialog是Qt框架中的一个对话框,用于显示输入对话框。它允许用户可以输入一些信息,例如文本、数字或日期等,然后返回所输入的值。

QInputDialog通常可以通过调用其静态函数getXXX()来使用。其中,XXX表示所需的输入类型,例如getText()用于获取文本输入,getInt()用于获取整数输入,getDate()用于获取日期输入等等。该函数会弹出一个对应类型的输入对话框,用户可以在其中输入所需的值,然后单击OK按钮返回所输入的值。

除了基本的输入功能之外,QInputDialog还提供了一些其他的特性。例如,它可以根据传递给它的初始值预先设置输入对话框的初始状态。它还可以设置其对话框标题以及任何其他自定义属性(例如,设置最大和最小值范围)。

举例:

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QPushButton>
#include <QLineEdit>
#include <QGridLayout>
#include <QInputDialog>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();
    QPushButton *butt_id,*butt_name,*butt_sex,*butt_salary;
    QLineEdit *line_id,*line_name,*line_sex,*line_salary;

private slots:
    void setline_idfunc();
    void setline_sex();

};
#endif // DIALOG_H

dialog.cpp

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    //创建需要的控件
    butt_id=new QPushButton("员工id:");
    butt_name=new QPushButton("员工姓名:");
    butt_sex=new QPushButton("员工性别:");
    butt_salary=new QPushButton("员工工资:");

    line_id = new QLineEdit("20220102");
    line_name = new QLineEdit("王xx");
    line_sex = new QLineEdit("男");
    line_salary = new QLineEdit("工资");

    line_id->setReadOnly(true);//设置文本只读
    line_name->setReadOnly(true);//设置文本只读
    line_sex->setReadOnly(true);//设置文本只读
    line_salary->setReadOnly(true);//设置文本只读

    QGridLayout *qglayout=new QGridLayout(this);

    qglayout->addWidget(butt_id,0,0);
    qglayout->addWidget(butt_name,1,0);
    qglayout->addWidget(butt_sex,2,0);
    qglayout->addWidget(butt_salary,3,0);
    qglayout->addWidget(line_id,0,1);
    qglayout->addWidget(line_name,1,1);
    qglayout->addWidget(line_sex,2,1);
    qglayout->addWidget(line_salary,3,1);

    //连接槽函数
    connect(butt_id,SIGNAL(clicked()),this,SLOT(setline_idfunc()));
    connect(butt_sex,SIGNAL(clicked()),this,SLOT(setline_sex()));





}

Dialog::~Dialog()
{
}

void Dialog::setline_idfunc()
{
    bool isbool;
    //用于打开一个输入对话框,让用户输入文本 。
    /*parent:指定输入对话框的父窗口,可以为nullptr。
    title:指定输入对话框的标题。
    label:指定要显示在输入框上面的文本标签。
    echoMode:指定输入框上所输入的内容是否应该被隐藏。它是一个枚举值,有四个选项:QLineEdit::Normal(正常模式)、QLineEdit::NoEcho(不回显)、QLineEdit::Password(密码模式)、QLineEdit::PasswordEchoOnEdit(编辑时回显密码)。
    text:指定输入框默认显示的文本。如果你想让用户输入新的值,可以将此参数设置为空字符串("")。
    */
    QString strString = QInputDialog::getText(this,"标准输入对话框","请输入学号:",
    QLineEdit::Normal,line_id->text(),&isbool);
    if(isbool && !strString.isEmpty())  //判断字符串是否为空 是否点击了确认
    {
        line_id->setText(strString);
    }
}
void Dialog::setline_sex()
{
    QStringList qsl;
    qsl<<"男"<<"女";

    bool isbool;
    /*用于创建一个输入对话框,让用户从一个字符串列表中选择一个项。形参如下
    parent:父窗口指针,用于指定对话框的父窗口。
    title:对话框标题,用于显示在对话框顶部的标题栏中。
    label:标签文本,用于显示在对话框中间的文本标签中,提示用户行为。
    items:列表项,用于指定可供选择的字符串列表。该参数应该是一个QStringList类型的列表。
    current:当前选中项的索引,表示在打开对话框时默认选中的项的索引。
    editable:是否允许用户编辑列表中的文本,如果为true,则用户可以在下拉列表中输入新的文本。
    okButton:确认按钮文本,用于显示在对话框底部的确认按钮上。
    cancelButton:取消按钮文本,用于显示在对话框底部的取消按钮上。
    options:对话框选项,可以控制对话框的一些行为。目前QInputDialog只支持一个选项:QInputDialog::NoButtons,用于隐藏所有的按钮,包括确认和取消按钮。*/
    QString strsex=QInputDialog::getItem(this,"sec选择","请选择:",qsl,1,false,&isbool);
    if(isbool && !strsex.isEmpty()){
        line_sex->setText(strsex);
    }
}

效果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值