Форум программистов, компьютерный форум, киберфорум
QML
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
1

QML Календарь

19.04.2019, 03:54. Показов 2187. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую

Требуется подсказеа относительно QML а именно календаря.
Вот картинка того, что у меня получилось. Отсутствие кнопки "следующий месяц" прошу игнорировать
QML Календарь

Итак вопрос: Как вы видите есть проблема с полем где должеы отображаться названия дней недели. Я не могу понять, какой параметр у этого поля отвечает за цвет и толщину разделителей, а так же как сюда вернуть названия дней недели. Вот тот самый фрагмент кода
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    Calendar {
        id: calendar
        width: 716
        height: 322
        anchors.verticalCenterOffset: 25
        anchors.horizontalCenterOffset: -25
        anchors.centerIn: parent
        // it have its own style
        style: CalendarStyle {
            gridVisible: true
            gridColor: "#414142"
            
            //Day of week part customizatioт
           // style: dayOfWeekDelegate {
            //}
 
            dayOfWeekDelegate: Rectangle {
                height: 35
                color: "#231F20"
 
            }
По аналогии, по идее надо писать gridColor = "цвет", gridVisible = "true", но такие параметры не принимаются. Их нет. Как там показать названия дней недели тоже не понятно.
Прошу помощи в данном вопросе
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2019, 03:54
Ответы с готовыми решениями:

Подсветка QML элементов QML-ного плагина в QtCreator в случае нахождения QML файлов плагина в ресурсах!
Здравствуйте! Если сделать плагин для QML и подключить его в основном проекте ну как - то так:...

QMl/QT при нажатии на кнопку должен окрыться другой qml файл
Додал anchors Вот что я сделал: import QtQuick 2.5 import QtQuick.Controls 1.4 ...

Как подключить QML-файл в C++ по моде, а также получить ссылки на QML-элементы в C++
Читал в интернете, как подключать QML-файлы. Кто-то использует QQmlView, кто-то...

qml - что из себя представляет qml
Решил написать игру на Qt,выбор остановился на танчиках.Посмотрел примеры и понял что все игры ,что...

2
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
19.04.2019, 23:03  [ТС] 2
Уважаемые,
Совет бы пригодился.
не из тех это случаев похоже, когда я создаю тему и сам же потом пишу решение.
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
22.04.2019, 23:34  [ТС] 3
Вот весь код моего календаря:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
Calendar {
        id: calendar
        width: 716
        height: 322
        anchors.verticalCenterOffset: 25
        anchors.horizontalCenterOffset: -25
        anchors.centerIn: parent
        // it have its own style
        style: CalendarStyle {
            gridVisible: true
            gridColor: "#414142"
 
            //Day of week part customizatioт
            /*
            dayOfWeekDelegate: Rectangle {
                height: 35
                color: "#231F20"
             */
 
            DayOfWeekRow  {
 
            }
            // navigationBar proprietary style
            navigationBar: Rectangle {
                /* It made of rectangle,
                 * which contain two buttons and some text
                 * */
                height: 48
                color: "#231F20"
 
                /* gorizontal bar/border,
                 * which eparates navigationBar and days field
                 * */
                Rectangle {
                    color: "#231F20"
                    height: 1
                    width: parent.width
                    anchors.bottom: parent.bottom
                }
 
                // Back button
                Button {
                    id: previousMonth
                    width: parent.height - 8
                    height: width
                    anchors.verticalCenter: parent.verticalCenter
                    anchors.left: parent.left
                    anchors.leftMargin: 8
 
                    /* Once clicked, move dates back
                     * */
                    onClicked: control.showPreviousMonth()
 
                    // Button style
                    style: ButtonStyle {
                        background: Rectangle {
                            // Back paint for button
                            color: "#231F20"
                            /* It is possible
                              *to change image depends if button is pressed or not
                             */
                            Image {
                                source: control.pressed ? "Images/cal-arrow-left.png" : "Images/cal-arrow-left.png"
                                width: parent.height - 8
                                height: width
                            }
                        }
                    }
                }
 
                // custom style label
                Label {
                    id: dateText
                    /* Take data from calendar title,
                     * which is invisible in this case
                     * and will be replaced with label
                     */
                    text: styleData.title
                    color:  "#939598"
                    elide: Text.ElideRight
                    horizontalAlignment: Text.AlignHCenter
                    font.pixelSize: 16
                    anchors.verticalCenter: parent.verticalCenter
                    anchors.left: previousMonth.right
                    anchors.leftMargin: 2
                    anchors.right: nextMonth.left
                    anchors.rightMargin: 2
                }
 
                // Forward month button
                Button {
                    id: nextMonth
                    width: parent.height - 8
                    height: width
                    anchors.verticalCenter: parent.verticalCenter
                    anchors.right: parent.right
 
                    /* Button click calll the calendar bunction
                     * which move one month forward
                     * */
                    onClicked: control.showNextMonth()
 
                     // Button style
                    style: ButtonStyle {
                        // Button back color
                        background: Rectangle {
                            color: "#231F20"
                            /* Two option of image, depends
                             * button is pressed or not
                             */
                            Image {
                                source: control.pressed ? "Images/cal-arrow-right.png" : "Images/cal-arrow-right.png"
                                width: parent.height - 8
                                height: width
                            }
                        }
                    }
                }
            }
            dayDelegate: Rectangle {
                gradient: Gradient {
                    GradientStop {
                        position: 0.00
                        color: styleData.selected ? "#111" : (styleData.visibleMonth && styleData.valid ? "#231F20" : "#231F20");
                    }
                    GradientStop {
                        position: 1.00
                        color: styleData.selected ? "#444" : (styleData.visibleMonth && styleData.valid ? "#231F20" : "#231F20");
                    }
                    GradientStop {
                        position: 1.00
                        color: styleData.selected ? "#777" : (styleData.visibleMonth && styleData.valid ? "#231F20" : "#231F20");
                    }
                }
                Label {
                    text: styleData.date.getDate()
                    font.pointSize: 10
                    anchors.top: parent.top
                    color: styleData.valid ? "white" : "grey"
                }
 
                Rectangle {
                    width: parent.width
                    height: 1
                    color: "#231F20"
                    anchors.bottom: parent.bottom
                }
 
                Rectangle {
                    width: 1
                    height: parent.height
                    color: "#231F20"
                    anchors.right: parent.right
                }
            }
        }
    }
Как покрасить область с днями недели? Есть ли возможность уменьшить ширину области месяц/год и стрелками вперед назад не меняя ширины самого календаря?

Добавлено через 1 час 59 минут
Вопрос имеет решение. Оно найдено. Привожу его тут:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Attempt
            dayOfWeekDelegate:
                            Rectangle{
                                id: rec1
                                color: "#231F20"
                                height: 50
 
                                Text {
                                    id: weekTxt
                                    font.pixelSize: 20
                                    text:Qt.locale().dayName(styleData.dayOfWeek, control.dayOfWeekFormat)
                                    anchors.centerIn: rec1
                                    color: styleData.selected?"green":"gray"
                                }
                        }
            //EndOf this attempt
0
22.04.2019, 23:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2019, 23:34
Помогаю со студенческими работами здесь

QML вызов другого qml
Всем привет. Название темы немного неверное. Вообщем проблема такая. Делаю игру на qml, и есть...

C++ и qml
я должен на qml сделать UI,и к нему подключить логику на чистом c++(qt в логике не использовался)...

QML + Js
Добрый день Есть три спинбокса на форме и кнопка. При нажатии на кнопку один из спинбоксов должен...

Qt and qml
добрый день, с начала запуска приложения сначала открывается окно с шахматной доской подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru