栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

标准输入对话框

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

标准输入对话框

头文件:#include

QInputDialog::getText()文字输入框
QInputDialog::getItem()条目选择框
QInputDialog::getInt()int型输入框
QInputDialog::getDouble()double 型输入框
//​文字输入框
bool ok; 
QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
               tr("User name:"), QLineEdit::Normal, QDir::home().dirName(), &ok); 
if (ok && !text.isEmpty()) 
textLabel->setText(text);   

​

 

//条目选择框
QStringList items;

      items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");
      bool ok;
      QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"),                                                      tr("Season:"), items, 0, false, &ok);
      if (ok && !item.isEmpty())
      itemLabel->setText(item)    

 

//int型输入框
bool ok;

      int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"),                                   tr("Percentage:"), 25, 0, 100, 1, &ok);      
      if (ok)
      integerLabel->setText(tr("%1%").arg(i));

 

//double 型输入框      
      bool ok;
      double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),
                                         tr("Amount:"), 37.56, -10000, 10000, 2, &ok);
      if (ok)
          doubleLabel->setText(QString("$%1").arg(d));

 实例:创建一个工程 继承于QWidget

在.h中添加

private:
    QLabel *lab1;
    QLabel *lab2;
    QLabel *lab3;
    QLabel *lab4;

    QLabel *label1;
    QLabel *label2;
    QLabel *label3;
    QLabel *label4;

    QPushButton *btn1;
    QPushButton *btn2;
    QPushButton *btn3;
    QPushButton *btn4;

    QGridLayout* mainlayout;

private slots:
    void button1();
    void button2();
    void button3();
    void button4();

.cpp中 构造函数

setWindowTitle("成员信息");
    resize(400,400);
    lab1=new QLabel("姓名:");
    lab2=new QLabel("性别:");
    lab3=new QLabel("年龄:");
    lab4=new QLabel("成绩:");

    label1=new QLabel("王");
    label2=new QLabel("男");
    label3=new QLabel("20");
    label4=new QLabel("60");
    label1->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    label2->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    label3->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    label4->setFrameStyle(QFrame::Panel|QFrame::Sunken);

    btn1=new QPushButton("修改姓名");
    btn2=new QPushButton("修改性别");
    btn3=new QPushButton("修改年龄");
    btn4=new QPushButton("修改成绩");

    mainlayout=new QGridLayout(this);
    mainlayout->addWidget(lab1,0,0);
    mainlayout->addWidget(label1,0,1);
    mainlayout->addWidget(btn1,0,2);
    mainlayout->addWidget(lab2,1,0);
    mainlayout->addWidget(label2,1,1);
    mainlayout->addWidget(btn2,1,2);
    mainlayout->addWidget(lab3,2,0);
    mainlayout->addWidget(label3,2,1);
    mainlayout->addWidget(btn3,2,2);
    mainlayout->addWidget(lab4,3,0);
    mainlayout->addWidget(label4,3,1);
    mainlayout->addWidget(btn4,3,2);
    mainlayout->setSpacing(20);
    mainlayout->setMargin(20);
    //mainlayout->setSizeConstraint(QLayout::SetFixedSize);
    connect(btn1,&QPushButton::clicked,this,&Widget::button1);
    connect(btn2,&QPushButton::clicked,this,&Widget::button2);
    connect(btn3,&QPushButton::clicked,this,&Widget::button3);
    connect(btn4,&QPushButton::clicked,this,&Widget::button4);

4个槽函数

void Widget::button1()//标准字符输入框
{
    bool ok;
    QString text=QInputDialog::getText(this,"获取姓名","请输入姓名:",QLineEdit::Normal,"",&ok);
    if(ok&& !text.isEmpty())
    {
        label1->setText(text);
    }
}
void Widget::button2()//标准条目选择对话框
{
    QStringList sst;
    sst<<"男"<<"女";
    bool ok;
    QString st=QInputDialog::getItem(this,"获取性别","请选择性别",sst,0,false,&ok);
    if(ok&&!sst.isEmpty())
    {
        label2->setText(st);
    }

}
void Widget::button3()//int 型输入框
{
    bool ok;
    int age=QInputDialog::getInt(this,"获取年龄","请输入性别",label3->text().toInt(&ok),0,100,1,&ok);
    if(ok)
    {
        label3->setText(QString("%1").arg(age));
    }

}
void Widget::button4()//double 输入框
{
    bool ok;
    double num=QInputDialog::getDouble(this,"获取分数","请输入分数",label4->text().toDouble(&ok),0,150,1,&ok);
    if(ok)
    {
        label4->setText(QString("%1").arg(num));
    }

}

效果:

界面为:

 效果:点击修改姓名

 点击ok

 

其他功能类似

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号