Russian Qt Forum
Апрель 26, 2024, 23:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QML Slider  (Прочитано 2296 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« : Октябрь 24, 2022, 08:08 »

Доброго дня.

Кто знает как поменять цвет текста у QML Slider? (а также шрифт, размер шрифта, ориентацию текста (слева/справа/сверху/снизу от слайдера?)
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #1 : Октябрь 24, 2022, 09:54 »

https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-slider

а текста в свойствах вообще не вижу...

а ты случайно не quick controls 1 используешь? там есть такое: https://doc.qt.io/qt-5/qml-qtquick-controls-styles-sliderstyle.html#tickmarks-prop
« Последнее редактирование: Октябрь 24, 2022, 10:00 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #2 : Октябрь 24, 2022, 10:13 »

QtQuick.Controls 2.15

Я промучился со свойствами... не могу найти текст.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #3 : Октябрь 24, 2022, 12:06 »

так а откуда у тебя там текст? вот я сделал тривиальный слайдер из примера, никакого текста он не показывает (на макос):
Код:
	Slider {
from: 1
value: 25
to: 100
}
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #4 : Октябрь 24, 2022, 12:10 »

так а откуда у тебя там текст?
Сорри, не слайдер, а Switch (он просто выглядит как слайдер в 2-мя позициями."

Я добился сметы цвета текста. но съехали "якоря". как теперь выровнять - не получается.

Код:
    Switch
    {
        id: dayNight
        text: "Day Night"
        anchors.left: parent.left
        anchors.verticalCenter: parent.verticalCenter
        font.pixelSize: 24
        onCheckedChanged: mainWindow.isDay = dayNight.checked ? false : true
        contentItem: Text {
        //    rightPadding: dayNight.indicator.width + dayNight.spacing
            text: dayNight.text
            font: dayNight.font
            color: "white"
            //anchors: dayNight.anchors
      //  elide: Text.ElideRight
      //         verticalAlignment: Text.AlignVCenter

        }
    }
Текст и слайдер (который свитч) друг на друге.


Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #5 : Октябрь 24, 2022, 12:28 »

якоря там вроде нельзя использовать. стандартная реализация выглядит так (лежит в QTDIR/qml/QtQuick/Controls.2/Switch.qml):
Код:
    contentItem: CheckLabel {
        leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
        rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0

        text: control.text
        font: control.font
        color: control.palette.windowText
    }
где control — это сам Switch

например, через padding свойства можно контролировать положение. также см. https://doc.qt.io/qt-5/qml-qtquick-controls2-control.html#control-layout
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #6 : Октябрь 24, 2022, 13:06 »

стандартная реализация выглядит так (лежит в QTDIR/qml/QtQuick/Controls.2/Switch.qml):
да, нашел её. а как использовать стандартную реализацию?
пробую
Код:
    Switch
    {
        id: dayNight
        text: "Day Night"
        anchors.left: parent.left
        anchors.verticalCenter: parent.verticalCenter
        onCheckedChanged: mainWindow.isDay = dayNight.checked ? false : true
        contentItem: CheckLabel //на этой строке ошибка. CheckLabel  - анкноун элемент.
        {

        }
    }
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #7 : Октябрь 24, 2022, 13:26 »

по ней можно ориентироваться как написать свою.

CheckLabel — это наверно что-то приватное, можно взять обычный Text или Label. https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-switch как пример
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #8 : Октябрь 24, 2022, 13:30 »

по ней можно ориентироваться как написать свою.

CheckLabel — это наверно что-то приватное, можно взять обычный Text или Label. https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-switch как пример
Дааааа!!!
Код:
        contentItem: Text {
            text: dayNight.text
            font: dayNight.font
            color: "white"
            verticalAlignment: Text.AlignVCenter
            leftPadding: dayNight.indicator.width + dayNight.spacing
        }
СРАБОТАЛО!!! Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 22.