Календарь: кнопки не налезают, без прозрачности, круглые, с учётом длинных месяцев

- RowLayout spacing 4, ToolButton 32x32 Layout.preferred 32, background Rectangle color Theme.surface (не прозрачный) + hover Theme.surfaceHover + pressed Theme.surfaceSelected, border Theme.border/Strong/accent, radius 16, contentItem Label
- Label месяца: Layout.minimumWidth 80 preferred 120 fillWidth, elide Right, maximumLineCount 1, NoWrap, pixelSize 12, bold, для 'сентябрь 2026' (8 букв) и узких окон
- Hover/pressed визуально меняются, круглые
This commit is contained in:
2026-09-01 22:09:28 +03:00
parent 7e494afbe4
commit b5a3639e46
+62
View File
@@ -36,26 +36,88 @@ Item {
RowLayout {
Layout.fillWidth: true
spacing: 4
// Кнопка Назад — круглая, без прозрачности
ToolButton {
text: "‹"
font.pixelSize: 16
font.bold: true
implicitWidth: 32
implicitHeight: 32
Layout.preferredWidth: 32
Layout.preferredHeight: 32
Layout.alignment: Qt.AlignVCenter
background: Rectangle {
color: parent.pressed ? Theme.surfaceSelected : (parent.hovered ? Theme.surfaceHover : Theme.surface)
border.color: parent.pressed ? Theme.accent : (parent.hovered ? Theme.borderStrong : Theme.border)
radius: 16
}
contentItem: Label {
text: parent.text
font: parent.font
color: Theme.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
onClicked: cal.currentMonth = new Date(year, month - 1, 1)
}
Label {
Layout.fillWidth: true
Layout.minimumWidth: 80
Layout.preferredWidth: 120
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.bold: true
color: Theme.text
font.pixelSize: 12
elide: Text.ElideRight
maximumLineCount: 1
wrapMode: Text.NoWrap
text: Qt.locale().monthName(month, Locale.LongFormat) + " " + year
}
ToolButton {
text: "›"
font.pixelSize: 16
font.bold: true
implicitWidth: 32
implicitHeight: 32
Layout.preferredWidth: 32
Layout.preferredHeight: 32
Layout.alignment: Qt.AlignVCenter
background: Rectangle {
color: parent.pressed ? Theme.surfaceSelected : (parent.hovered ? Theme.surfaceHover : Theme.surface)
border.color: parent.pressed ? Theme.accent : (parent.hovered ? Theme.borderStrong : Theme.border)
radius: 16
}
contentItem: Label {
text: parent.text
font: parent.font
color: Theme.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
onClicked: cal.currentMonth = new Date(year, month + 1, 1)
}
ToolButton {
text: "\u2302"
font.pixelSize: 12
implicitWidth: 32
implicitHeight: 32
Layout.preferredWidth: 32
Layout.preferredHeight: 32
Layout.alignment: Qt.AlignVCenter
background: Rectangle {
color: parent.pressed ? Theme.surfaceSelected : (parent.hovered ? Theme.surfaceHover : Theme.surface)
border.color: parent.pressed ? Theme.accent : (parent.hovered ? Theme.borderStrong : Theme.border)
radius: 16
}
contentItem: Label {
text: parent.text
font: parent.font
color: Theme.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
ToolTip.text: qsTr("Сегодня")
ToolTip.visible: hovered
onClicked: cal.currentMonth = new Date()