У меня есть этот виджет QDateEdit, но он всегда показывает стандартное время, например 01-01-2014 (в DD-MM-YYYY, но я могу изменить это в пользовательском интерфейсе). Но я хочу, чтобы он отображал текущее время, если открывается диалоговое окно (где этот виджет QDateEdit). Я тестировал это только на ярлыке (см. Форму void form_dialog). Но его распечатка "sa nov 23 2013". Но я хочу, чтобы это было 23-11-2013. Также он дает мне ошибку:
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);
}
Обратите внимание, что ваш компилятор сообщает о несоответствующих типах объектов в приведенном выше сообщении об ошибке.
Если вы хотите показать текущую дату, когда появится диалоговое окно, я бы сделал следующее:
Например:
void MyDialog::showEvent(QShowEvent * event)
{
QDate date = QDate::currentDate();
m_dateEdit->setDate(date); // sets the current date to date edit.
QDialog::showEvent(event);
}