在.txt中打开日期 日期编辑 Qt C++

Open a date in a .txt into DateEdit Qt C++

本文关键字:日期 编辑 C++ Qt txt      更新时间:2023-10-16

我正在尝试在QtDesigner中保存.txt DataEdit的日期,然后打开.txt并将日期放入DataEdit中。

保存是好的:

QTextStream out(&sFile);
        out << ui.lineEdit_2->text()<< "n"
            << ui.lineEdit->text()<< "n" 
            << ui.dateEdit->text();

打开(这是问题所在):

  QTextStream in(&sFile);
        QString text = in.readLine();
        QString name = in.readLine();
        QDateEdit fecha = in.readLine();
        sFile.close();
        ui.lineEdit_2->setText(text);
        ui.lineEdit->setText(name);
        ui.dateEdit->date(fecha);
错误

1 错误 C2440:"正在初始化":无法从"QString"转换为"QDateEdit"
错误 2 错误 C2660:"QDateTimeEdit::d ate":函数不接受 1 个参数

我不知道想改变这一点。

这不是存储设置的最佳方式。您可以将其存储为文本,但不控制文本编码、日期格式等。

无论如何,代码的最小更改如下:

QDate fecha = QDate::fromString(in.readLine());
...
ui.dateEdit->setDate(fecha);
QDateEdit 是一个小部件而不是 QDate,QDate

可以序列化,小部件序列化没有意义 - 您实际上是在写下 QDateEdit 的文本,并希望从该文本创建 QDateEdit。

相反,您需要序列化该编辑的QDate,然后恢复QDate并将其设置为ui.dateEdit。

尝试使用QDate::fromString()方法从中获取QDate。 然后只需调用QDateEdit::setDate(const QDate& date)

这么龙仔