首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QInputDialog和QMessageBox

QInputDialog和QMessageBox
EN

Stack Overflow用户
提问于 2015-04-29 20:38:15
回答 1查看 12.4K关注 0票数 1

我正在为一个使用Qt框架的考试做准备,我想知道如何以基本的方式使用QInputDialog和QMessageBox (我的考试是手写编码)

Qt API在使用时真的很难理解,它对我的项目来说很好,因为我可以用一种非常“老生常谈”的方式来实现我想要的东西,而我在这方面的书籍布局非常糟糕……

让我进入重点,在这个场景中使用QInputDialog和QMessageBox的干净方法是什么:

代码语言:javascript
复制
#include <QApplication>
#include <QInputDialog>
#include <QDate>
#include <QMessageBox>

int computeAge(QDate id) {
  int years = QDate::currentDate().year() - id.year();
  int days = QDate::currentDate().daysTo(QDate
              (QDate::currentDate().year(), id.month(), id.day()));
  if(days > 0) 
    years--;
  return years
}

int main(int argc, char *argv[]) {
  QApplication a(argc, argv);
  /*  I want my QInputDialog and MessageBox in here somewhere */
  return a.exec();
}

对于我的QInputDialog,我希望用户给出他们的出生日期(不用担心输入验证),我希望使用QMessageBox来显示用户的年龄

我只是不明白在这样的基本情况下,需要在QInputDialog和QMessageBox中使用什么参数,因为似乎没有任何示例。

我该如何做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-29 20:50:16

你可以这样做:

代码语言:javascript
复制
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    bool ok;
    // Ask for birth date as a string.
    QString text = QInputDialog::getText(0, "Input dialog",
                                         "Date of Birth:", QLineEdit::Normal,
                                         "", &ok);
    if (ok && !text.isEmpty()) {
        QDate date = QDate::fromString(text);
        int age = computeAge(date);
        // Show the age.
        QMessageBox::information (0, "The Age",
                                  QString("The age is %1").arg(QString::number(age)));
    }
    [..]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29943992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档