3

我试图在 .txt 中保存 QtDesigner 中的 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::date”:函数不接受 1 个参数

我不知道喜欢改变这个。

4

3 回答 3

1

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

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

于 2013-01-28T10:16:25.700 回答
1

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

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

QDate fecha = QDate::fromString(in.readLine());
...
ui.dateEdit->setDate(fecha);
于 2013-01-28T10:36:23.017 回答
0

尝试QDate::fromString()从中获取的方法QDate。然后打电话QDateEdit::setDate(const QDate& date)

苏龙仔

于 2013-01-28T10:47:41.063 回答