c++ - 为什么 addDays 不起作用?

标签 c++ qt qt5

这段代码试图设置 4 个标签为第 x 周、第 x+1 周、第 x+2 周和第 x+3 周,但是在使用 addDays(7) 更新时失败了,我只得到第 x 周、第 x 周、第 x 周和第 x 周。任何人都可以看到错误?

 ui->setupUi(this);
QDate fecha=QDate::currentDate();
int pr=fecha.weekNumber();
int year=fecha.year();
ui->lab1->setText("Week "+ QString::number(pr) + "\n" + " Year " +QString::number(year));
ui->lab5->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
fecha.addDays(7);
pr=fecha.weekNumber();
year=fecha.year();
ui->lab2->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
ui->lab6->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
fecha.addDays(7);
pr=fecha.weekNumber();
year=fecha.year();
ui->lab3->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
ui->lab7->setText("Week "+ QString::number(pr)  + "\n" + "Year " +QString::number(year));
fecha.addDays(7);
pr=fecha.weekNumber();
year=fecha.year();
ui->lab4->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
ui->lab8->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));

谢谢。

最佳答案

addDays() function 返回一个耗时修改的对象,即不在初始对象中累加。

QDate QDate::addDays(qint64 ndays) const

Returns a QDate object containing a date ndays later than the date of this object (or earlier if ndays is negative).

Returns a null date if the current date is invalid or the new date is out of range.

您必须重新分配返回给变量的内容:

fecha = fecha.addDays(7);

关于c++ - 为什么 addDays 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43985165/

相关文章:

c++ - Qt QGraphicsView 和样式表

c++ - Qt中有没有办法禁止计算机进入休眠状态?

c++ - std::setprecision设置有效数字的数量。如何使用iomanip设置精度?

c++ - OpenGL "black screen"挫折

c++ - 从 Qt 应用程序执行 MSI 文件

c++ - 具有完全透明背景的qt小部件

c++ - std::is_unsigned 是否暗示 std::is_integral

c++ - 在具有不同类型的 vector 中使用模板结构

python - 当没有必要时,为什么要在 PyQt 中导入 QtGui 和 QtCore?

c++ - 使用 cmake 构建 Qt5 项目