Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
13 июня 2018 г. 14:37

Как вывести текущую дату минус 30 дней в textfield

Вывожу поле с текущей датой вот так
TextField{
            id:data_out
            width:dp(120)
            anchors.left:lbl_out.right
            anchors.top:parent.top
            anchors.topMargin: 0
            font.family: "Times New Roman"
            smooth: false
            placeholderText: qsTr("дата по")
            font.bold: true
            font.pixelSize: dp(20)
           text:Qt.formatDate(new Date(),"dd-MM-yyyy");
            readOnly : true
        }

А как вывести текущую дату минус 30 дней.
Component.onCompleted:  - не предлагать.
(так работает -

Component.onCompleted: {
            var today1 = new Date();
            today1.setDate(today1.getDate()-30);
            data_in.text=Qt.formatDate(today1,"dd-MM-yyyy");
            today1.setDate(today1.getDate()+30);
            data_out.text=Qt.formatDate(today1,"dd-MM-yyyy");
        }


Хочется именно в text: - типо
 text:Qt.formatDate(new Date()... -30,"dd-MM-yyyy");


3

JavaScript же ))

var date = new Date();
date.setDate(date.getDate() - 30);
Относительно всех Date, Math и т.д. очень рекомендую посматривать в стандартные библиотеки JavaScript, "обычно" работает и в QML
0
  • 14 июня 2018 г. 5:50
  • Ответ был помечен как решение.
Ок. Насколько я понял функцию  -
Component.onCompleted: {
            
не очень любят. Поэтому думал чем заменить. Возможно так правильнее?

        TextField{
            function date_from()
                        {
                            var date = new Date();
                            date.setDate(date.getDate() - 30);
                            return Qt.formatDate(date,"dd-MM-yyyy");
                        }
            id:data_in
            width:dp(130)
            anchors.top:parent.top
            anchors.topMargin: 0
            anchors.left:lbl_in.right
            font.family: "Times New Roman"
            smooth: false
            placeholderText: qsTr("дата с")
            font.bold: true
            font.pixelSize: dp(20)
            text: date_from()
            readOnly : true
        }

0

Да, так как-то лучше выглядит.


Вообще, Component.onCompleted можно использовать, лично у меня предуюеждений нет к нему, но по факту нужно отслеживать последовательность загрузки QML файла, чтобы правильно отрабатывали все методы onCompleted у разных файлов.

Проблема в onCompleted может быть в том случае, когда открытие допустим "странички приложения" через StackView с помощью устновки текущего элемента из тех, что в него загружены, не равно созданию объекта. То есть открывать мы можем сколько угодно, создав один раз.

Может поэтому кто-то и недолюбливает применение этого обработчика. Тут скорее от архитектуры и логики приложения стоит отталкиваться.
0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
A
22 января 2019 г. 21:22
Allyonz

C++ - Тест 001. Первая программа и типы данных

  • Результат:40баллов,
  • Очки рейтинга-8
A
22 января 2019 г. 14:15
Alex

Qt - Тест 001. Сигналы и слоты

  • Результат:89баллов,
  • Очки рейтинга6
IO
20 января 2019 г. 18:39
Ivan Otreshko

C++ - Тест 003. Условия и циклы

  • Результат:0баллов,
  • Очки рейтинга-10
Последние комментарии
22 января 2019 г. 13:17
Евгений Легоцкой

Создайте тогда тему здесь на форуме в разделе Qt с выкладками кода и вашими попытками внедрения делегата, позже гляну или может кто-то ещё глянет из опытных пользователей.
I
22 января 2019 г. 13:13
IscanderChe

Не проще тогда использовать сразу кастомный делегат с чекбоксом? Я попробовал, но там засада в том, что чекбокс показывается только при щелчке на ячейку, а дефолтно показывается значение. Как ...
22 января 2019 г. 12:15
Евгений Легоцкой

Если будет не приемлемо потом, то тогда через кастомный Item Delegate нужно будет перерисовать ячейки в той колонке.
I
22 января 2019 г. 12:09
IscanderChe

Получилось приемлемо. Спасибо!Нюанс только в том, что поле рядом с чекбоксом не пропадает, оно просто пустое, что видно при выделении ячейки. Но этого достаточно.
22 января 2019 г. 11:50
Евгений Легоцкой

Переопределить метод data для той колонки и роли Qt::DisplayRole, чтобы в том случае возвращался QVariant() я так думаю... Но возможно, что у вас там будут нюансы, если вы туда чекбокс за...
Сейчас обсуждают на форуме
23 января 2019 г. 7:54
Михаиллл

Зарание спасибо.А еще на эту тему можно будет сделать статью. Это контент будет уникальным.
23 января 2019 г. 7:37
Евгений Легоцкой

Hello. Maybe the English will be better for you? I think russian is not native language for you, or did I mistake? Did I undesrtood rightly, that you mean this documentation ( ...
I
22 января 2019 г. 13:45
IscanderChe

Всем добрый день. Суть задачи: надо, чтобы в одной из колонок QTableView вместо хранимого в QSqlTableModel значения выводился чекбокс и при смене состояния чекбокса значения в базе тоже ...
M
22 января 2019 г. 13:15
Max-P85

Евгений, огромное спасибо, все работает!
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы