Bar*_*yle 0 c++ qt dialog qmessagebox qdate
我正在为使用Qt框架的考试做一些准备,我想知道如何以基本方式使用QInputDialog和QMessageBox(我的考试是手写编码)
Qt API在使用方面真的很难理解它对于我的项目来说很好,因为我可以以一种非常"hacky"的方式完成我想要的东西,我的关于这个主题的设置书很糟糕......
让我谈谈在这种情况下使用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();
}
Run Code Online (Sandbox Code Playgroud)
对于我的QInputDialog,我希望用户给出他们的出生日期(不要担心输入验证)我想使用QMessageBox来显示用户的年龄
我只是不明白在基本情况下需要进入QInputDialog和QMessageBox的参数是什么,因为那里似乎没有任何示例.
我怎么做到这一点?
你可以这样做:
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)));
}
[..]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7493 次 |
| 最近记录: |