我有这个 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);
}
谢谢!
也许有一些可视化的东西很有用,下面显示的小部件应该显示当前日期:
最佳答案
首先,文档表明 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/