2015-04-29 6 views
0

Я делаю некоторую подготовку к экзамену с использованием фреймворка Qt, и я хотел бы знать, как использовать QInputDialog и QMessageBox в основной способ (мои экзамены рукописные кодирование)QInputDialog и QMessageBox

в Qt API является действительно смущает понять, когда дело доходит до использования, и это было хорошо для моих проектов, потому что я мог бы выполнить то, что хотел, по-настоящему «взломанный» способ, чтобы моя книга по этому вопросу была очень плохо выложена ...

Let я понимаю, что было бы чистым способом использования QInputDialog и QMessageBox в этом случае:

#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 в базовом случае, например, потому что, похоже, нет никаких примеров.

Как бы это осуществить?

ответ

2

Вы можете сделать что-то вроде:

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))); 
    } 
    [..] 
+0

ли этот параметр после QLineEdit :: Normal представляют текст по умолчанию в строке? –

+0

@BarryDoyle, да. Вы можете экспериментировать с разными значениями и посмотреть, как они влияют. – vahancho

+0

Awesome thanks man, я действительно понятия не имел, с чего начать, когда дело дошло до этого материала :) –