Top.Mail.Ru
Уведомления
Очистить все

[Решено] Qml ComboBox customization

doom
 doom
(@doom)
Level 1

Всем привет, помогите советом по кастомизации ComboBox в Qml. Задача такая: строки выпадающего списка должны иметь чередующиеся цвета с текстом. Вроде такого:

image

Способности к рисованию скудные, но надеюсь идею передал ))

Цитата
Создатель темы Размещено : 06.11.2021 11:39
Метки темы
AI
 AI
(@ai)
Level 3 Moderator

Привет, через ItemDelegate.

Чуть попозже набросаю пример.

ОтветитьЦитата
Размещено : 06.11.2021 17:11
AI
 AI
(@ai)
Level 3 Moderator

Чуть не забыла про обещанный пример:

ComboBox {
    id: comboBox
    anchors.fill: parent
    model: [ {text: "Item1", color: "#c8c8c8"},
             {text: "Item2", color: "#8b8b8b"},
             {text: "Item3", color: "#c8c8c8"},
             {text: "Item4", color: "#8b8b8b"},
             {text: "Item5", color: "#c8c8c8"} ]

    delegate: ItemDelegate {
        width: comboBox.width

        contentItem: Rectangle {
            anchors.fill: parent
            color: modelData['color']

            Text {
                anchors.centerIn: parent
                text: modelData['text']
                font.pointSize: 12
            }
        }
    }

    contentItem: Rectangle {
        anchors.fill: parent
        color: comboBox.model[comboBox.currentIndex]['color']

        Text {
            anchors.centerIn: parent
            text: comboBox.model[comboBox.currentIndex]['text']
            font.pointSize: 12
        }
    }
}

Результат:

изображение

Обвела я текущее выбранное значение.

ОтветитьЦитата
Размещено : 07.11.2021 10:50
doom and Aveal reacted
doom
 doom
(@doom)
Level 1

@ai большое спасибо за пример!

ОтветитьЦитата
Создатель темы Размещено : 07.11.2021 16:21
doom
 doom
(@doom)
Level 1

@ai можете посмотреть еще одну мою тему - https://microtechnics.ru/community/qt/qml-problema-s-filedialog/

ОтветитьЦитата
Создатель темы Размещено : 07.11.2021 16:26
Поделиться: