C++ QInputDialog和QMessageBox
我正在为使用Qt框架的考试做准备,我想知道如何以一种基本的方式使用QInputDialog和QMessageBox(我的考试是手工编写的代码) QtaPI在使用上确实令人费解,对我的项目来说也不错,因为我可以用一种非常“黑客”的方式完成我想要的东西,我的一本关于这个主题的书布局非常糟糕 让我直截了当地说,在这种情况下,使用QInputDialog和QMessageBox的干净方法是什么:C++ QInputDialog和QMessageBox,c++,qt,dialog,qmessagebox,qdate,C++,Qt,Dialog,Qmessagebox,Qdate,我正在为使用Qt框架的考试做准备,我想知道如何以一种基本的方式使用QInputDialog和QMessageBox(我的考试是手工编写的代码) QtaPI在使用上确实令人费解,对我的项目来说也不错,因为我可以用一种非常“黑客”的方式完成我想要的东西,我的一本关于这个主题的书布局非常糟糕 让我直截了当地说,在这种情况下,使用QInputDialog和QMessageBox的干净方法是什么: #include <QApplication> #include <QInputDialo
#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();
}
#包括
#包括
#包括
#包括
内部计算(QDate id){
int years=QDate::currentDate().year()-id.year();
int days=QDate::currentDate().daysTo(QDate
(QDate::currentDate().year(),id.month(),id.day());
如果(天数>0)
年--;
回归年
}
int main(int argc,char*argv[]){
质量保证申请a(argc、argv);
/*我想把我的对话框和消息框放在这里的某个地方*/
返回a.exec();
}
对于我的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)));
}
[..]
您可以执行以下操作:
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)));
}
[..]
QLineEdit::Normal后面的参数是否表示行中的默认文本?@BarryDoyle,是的。你可以用不同的值来试验自己,看看它们是如何影响的。太棒了,谢谢你了,我真的不知道从哪里开始,当涉及到这个东西:)对于QMessageBox,我可以把最后一个参数写成
QString(“年龄是”+QString::number(年龄))
?我只是在寻找更简单更容易的方法来写下来,以便理解……我建议您阅读官方文档中关于静态方法参数的内容。这里描述了所有参数,QLineEdit::Normal之后的参数是否表示行中的默认文本?@BarryDoyle,是的。你可以用不同的值来试验自己,看看它们是如何影响的。太棒了,谢谢你了,我真的不知道从哪里开始,当涉及到这个东西:)对于QMessageBox,我可以把最后一个参数写成QString(“年龄是”+QString::number(年龄))
?我只是在寻找更简单更容易的方法来写下来,以便理解……我建议您阅读官方文档中关于静态方法参数的内容。这里描述了所有的参数