标准输入框

在Qt中,QInputDialog类中提供了简单的输入对话框用来获得用户的输入信息,目前包含4中数据类型的输入,字符串、Int类型,Double类型、以及下拉列表。


使用方法通过简单的例子说明,

若调用字符串输入框则设置为一个LineEdit,如果是Int、Double类型的输入框,则为一个QspinBox,如果是调用列表 条目输入框,则为一个QComboBox;


使用方法参考:

//输入字符串QlineEdit
void Dialog::slotName()
{
    bool ok;
    QString name = QInputDialog::getText(this,tr("User anme"),tr("please input new name:"),QLineEdit::Normal,lableName->text(),&ok);
 
    if(ok && !name.isEmpty())
    {
        lableName->setText(name);
    }
}
 
//调用一个列表条目,QComboBox
void Dialog::slotSex()
{
    QStringList list;
    bool ok;
    list << tr("male")<<tr("female");
    QString sex = QInputDialog::getItem(this,tr("Sex"),tr("please input new sex:"),list,0,false,&ok);
 
    if(ok)
    {
        lableSex->setText(sex);
    }
}
//输入Int型,是一个QspinBox
void Dialog::slotAge()
{
    bool ok;
    //添加一个可以加减的符号
    int age = QInputDialog::getInt(this,tr("age"),tr("please input new age:"),lableAge->text().toInt(),0,150,1,&ok);
 
    if(ok)
        lableAge->setText(QString("%1").arg(age));
}
 
void Dialog::slotStature()
{
    bool ok;
    double stature = QInputDialog::getDouble(this,tr("stature"),tr("please input new stature:"),175.00,0,230.00,1,&ok);
    if(ok)
        lableStature->setText(QString(tr("%1").arg(stature)));
}


完整代码:

dialog.h


#ifndef DIALOG_H
#define DIALOG_H
 
#include <QDialog>
#include <QGridLayout>
#include <QPushButton>
#include <QLabel>
#include <QString>
#include <QInputDialog>
#include <QStringList>
 
 
namespace Ui {
class Dialog;
}
 
class Dialog : public QDialog
{
    Q_OBJECT
public:
    QGridLayout* layout;
    //修改按钮
    QPushButton* nameButton;
    QPushButton* sexButton;
    QPushButton* ageButton;
    QPushButton* statureButton;
    //标签
    QLabel* nameLable;
    QLabel* sexLable;
    QLabel* ageLable;
    QLabel* statureLable;
 
    //提示标签
    QLabel* lableName;
    QLabel* lableSex;
    QLabel* lableAge;
    QLabel* lableStature;
private slots:
    void slotName();
    void slotSex();
    void slotAge();
    void slotStature();
 
public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();
 
private:
    Ui::Dialog *ui;
};
 
#endif // DIALOG_H
 

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
 
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    setWindowTitle(tr("input dialog"));
 
    nameLable = new QLabel;
    nameLable->setText(tr("姓名:"));
    sexLable = new QLabel;
    sexLable->setText(tr("性别:"));
    ageLable = new QLabel;
    ageLable->setText(tr("年龄:"));
    statureLable = new QLabel;
    statureLable->setText(tr("身高:"));
 
    //创建各个提示标签
    lableName = new QLabel(tr("李明"));
    lableName->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    lableSex = new QLabel(tr("男"));
    lableSex->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    lableAge = new QLabel(tr("22"));
    lableAge->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    lableStature = new QLabel;
    lableStature->setFrameStyle(QFrame::Panel|QFrame::Sunken);
 
    nameButton = new QPushButton;
    nameButton->setText(tr("..."));
    sexButton = new QPushButton;
    sexButton->setText(tr("..."));
    ageButton = new QPushButton;
    ageButton->setText(tr("..."));
    statureButton = new QPushButton;
    statureButton->setText(tr("..."));
 
    layout = new QGridLayout(this);
    layout->addWidget(nameLable,0,0);
    layout->addWidget(lableName,0,1);
    layout->addWidget(nameButton,0,2);
    layout->addWidget(sexLable,1,0);
    layout->addWidget(lableSex,1,1);
    layout->addWidget(sexButton,1,2);
    layout->addWidget(ageLable,2,0);
    layout->addWidget(lableAge,2,1);
    layout->addWidget(ageButton,2,2);
    layout->addWidget(statureLable,3,0);
    layout->addWidget(lableStature,3,1);
    layout->addWidget(statureButton,3,2);
 
    connect(nameButton,SIGNAL(clicked()),this,SLOT(slotName()));
    connect(sexButton,SIGNAL(clicked()),this,SLOT(slotSex()));
    connect(ageButton,SIGNAL(clicked()),this,SLOT(slotAge()));
    connect(statureButton,SIGNAL(clicked()),this,SLOT(slotStature()));
}
//输入字符串QlineEdit
void Dialog::slotName()
{
    bool ok;
    QString name = QInputDialog::getText(this,tr("User anme"),tr("please input new name:"),QLineEdit::Normal,lableName->text(),&ok);
 
    if(ok && !name.isEmpty())
    {
        lableName->setText(name);
    }
}
 
//调用一个列表条目,QComboBox
void Dialog::slotSex()
{
    QStringList list;
    bool ok;
    list << tr("male")<<tr("female");
    QString sex = QInputDialog::getItem(this,tr("Sex"),tr("please input new sex:"),list,0,false,&ok);
 
    if(ok)
    {
        lableSex->setText(sex);
    }
}
//输入Int型,是一个QspinBox
void Dialog::slotAge()
{
    bool ok;
    //添加一个可以加减的符号
    int age = QInputDialog::getInt(this,tr("age"),tr("please input new age:"),lableAge->text().toInt(),0,150,1,&ok);
 
    if(ok)
        lableAge->setText(QString("%1").arg(age));
}
 
void Dialog::slotStature()
{
    bool ok;
    double stature = QInputDialog::getDouble(this,tr("stature"),tr("please input new stature:"),175.00,0,230.00,1,&ok);
    if(ok)
        lableStature->setText(QString(tr("%1").arg(stature)));
}
 
Dialog::~Dialog()
{
    delete ui;
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值