在.text中打开DateEdit Qt C ++中的日期

时间:2013-01-28 09:57:09

标签: c++ qt date

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

save is okey:

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个参数

我不知道要改变这个。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

无论如何,代码的最小变化如下:

QDate fecha = QDate::fromString(in.readLine());
...
ui.dateEdit->setDate(fecha);

答案 2 :(得分:0)

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

soo long zai