Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用C+;将日期设置为QDateEdit+;_C++_Qt_Date_Edit - Fatal编程技术网

C++ 使用C+;将日期设置为QDateEdit+;

C++ 使用C+;将日期设置为QDateEdit+;,c++,qt,date,edit,C++,Qt,Date,Edit,我有这个QDateEdit小部件,但它总是显示标准时间,如2014年1月1日(在DD-MM-YYYY中,但我可以在UI中更改)。但是如果对话框(QDateEdit小部件所在的位置)打开,我希望它显示当前时间。 我在一个标签上测试了这一点(参见void form_对话框)。但它的打印输出“sa 2013年11月23日”。但我想要像2013年11月23日那样。这也给了我一个错误: QDateTimeEdit::setDate' : cannot convert parameter 1 from 'Q

我有这个QDateEdit小部件,但它总是显示标准时间,如2014年1月1日(在DD-MM-YYYY中,但我可以在UI中更改)。但是如果对话框(QDateEdit小部件所在的位置)打开,我希望它显示当前时间。 我在一个标签上测试了这一点(参见void form_对话框)。但它的打印输出“sa 2013年11月23日”。但我想要像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
所以

谢谢

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

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

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

根据您如何实例化QDATEEDIT对象,您还可以考虑用自己的小部件进行子类QDTEEDIT,并在小部件的构造函数中设置QDATEEDIT对象。不过,这种方法可能会杀伤力过大(没有代码,很难推测什么是最好的…)

编辑后的问题提供了更多信息。文档表明QDateEdit方法接受QDate对象,而不是QString对象。因此,您的函数应该更像:

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

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

如果要在对话框出现时显示当前日期,我将执行以下操作:

  • 处理对话框的显示事件
  • 获取当前日期
  • 将当前日期设置为日期编辑小部件
例如:

void MyDialog::showEvent(QShowEvent * event)
{
    QDate date = QDate::currentDate();
    m_dateEdit->setDate(date); // sets the current date to date edit.

    QDialog::showEvent(event);
}

顺便说一句,如果打开应用程序,FunctOn setCurrentDate()是一个将运行的函数。它在标准ui->setupUI(这个)之后运行函数
void MyDialog::showEvent(QShowEvent * event)
{
    QDate date = QDate::currentDate();
    m_dateEdit->setDate(date); // sets the current date to date edit.

    QDialog::showEvent(event);
}