c++ - 使用 C++ 在 QDateEdit 中设置日期

标签 c++ qt date edit

我有这个 QDateEdit 小部件,但它始终显示标准时间,例如 01-01-2014(采用 DD-MM-YYYY,但我可以在 UI 中更改此时间)。但我希望它在打开对话框(此 QDateEdit 小部件所在的位置)时显示当前时间。 我只是在标签上测试了这一点(参见 void form_dialog)。但它打印出“sa nov 23 2013”​​。但我想要 2013 年 11 月 23 日这样的时间。它还给了我一个错误:

QDateTimeEdit::setDate' : cannot convert parameter 1 from 'QString' to 'const QDate &'
Reason: cannot convert from 'QString' to 'const QDate'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

所以

void form_dialog::setCurrentDate()
{
    QDate date = QDate::currentDate();
    QString dateString = date.toString();
    ui->DateEdit->setDate(dateString);
}

谢谢!

也许有一些可视化的东西很有用,下面显示的小部件应该显示当前日期:
enter image description here

最佳答案

首先,文档表明 QDateEdit 对象具有参数化构造函数,允许在构造时初始化日期:

QDateEdit::QDateEdit ( const QDate & date, QWidget *parent = 0 )

根据您实例化 QDateEdit 对象的方式,您还可以考虑使用您自己的小部件对 QDateEdit 进行子类化,并在小部件的构造函数中设置 QDateEdit 对象。不过,这种方法可能有点过头了(没有代码,很难推测什么是最好的......)

编辑后的问题提供了更多内容。 QDateEdit文档表明 QDateEdit 方法接受 QDate 对象,而不是 QString 对象。所以你的函数应该看起来更像:

void form_dialog::setCurrentDate()
{
    QDate date = QDate::currentDate();
    ui->DateEdit->setDate(date);
}

请注意,您的编译器在上面的错误消息中报告了不匹配的对象类型。

关于c++ - 使用 C++ 在 QDateEdit 中设置日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20152066/

相关文章:

c++ - QT qScriptConnect 不工作

android - 我怎样才能让我的应用程序每隔 X 次做一些事情

r - 如何在 R 编程中将日期时间更改为新列中的日期?

c++ - Visual Studio 2010 - 优化大小或速度

c++ - 不同大小的 std::string::npos

C++ sizeof() 没有返回正确的大小

qt - 如何在 Vala 中使用 Qt GUI?

c++ - Qt Release build 给出 MSVC++ Runtime Library Error

java - 在 android 中,是否可以将日期对象格式化为 mm-dd-yy?如果是,那么如何?

c++ - 为什么std::getline()在格式化提取后会跳过输入?