Интервал белого в элементах комбинированного списка - PullRequest
0 голосов
/ 08 июня 2018

Я настраиваю Combobox.Вот мой код:

import QtQuick 2.7
import QtQuick.Controls.Styles 1.4
import QtQuick.Controls 2.2
import QtQuick.Window 2.2

ComboBox {
    property int selectionButtonWidth: 35
    property int selectionButtonHeight: 25
    property int selectionButtonFontSize: 12
    property string mainFontFamily: "Asap"
    property color mainFontColor: "red"
    property color inputHighlight: "#9C27B0"
    property color comboboxBorderColor: "#C5C1CD"
    property int comboboxBorderWidth: 1

    id: playFromHour
    width: selectionButtonWidth
    height: selectionButtonHeight

    model: 24
    currentIndex: 1

    font.family: mainFontFamily
    font.pixelSize: selectionButtonFontSize

    property bool needHighlight: false

    onNeedHighlightChanged: {
        if (needHighlight) {
            playFromHourBack.border.color = inputHighlight
        }
        else {
            playFromHourBack.border.color = comboboxBorderColor
        }
    }

    background: Rectangle {
        id: playFromHourBack
        color: "transparent"
        border.color: comboboxBorderColor
        border.width: comboboxBorderWidth
    }

    contentItem: Text {
        text: parent.displayText
        font: parent.font
        verticalAlignment: Text.AlignVCenter
        horizontalAlignment: Text.AlignHCenter
        color: mainFontColor
    }

    indicator: Canvas {
    }

    delegate: ItemDelegate {
        width: parent.width
        height: selectionButtonHeight

        contentItem: Text {
            text: modelData
            verticalAlignment: Text.AlignVCenter
            horizontalAlignment: Text.AlignHCenter
            font: playFromHour.font
            color: mainFontColor
        }

        highlighted: playFromHour.highlightedIndex === index
    }

    popup: Popup {
        width: selectionButtonWidth
        height: 6 * selectionButtonHeight

        contentItem: ListView {
            clip: true
            model: playFromHour.popup.visible ? playFromHour.delegateModel : null
            currentIndex: playFromHour.highlightedIndex
        }
    }
}

Но я сталкиваюсь с большой ненастраиваемой рамкой вокруг каждого числа.Смотрите прикрепленное изображение:

Мне нужно уменьшить размеры этого кадра до нуля, но я просто не знаю, как это сделать.Есть идеи, пожалуйста?

Мне нужно это исправить, чтобы я смог уменьшить ширину поля со списком.Поскольку теперь с шириной <40 пикселей, эти белая рамка / границы занимают все пространство внутри всплывающего окна. </p>

, поэтому для текста нет места.

1 Ответ

0 голосов
/ 09 июня 2018

Вы должны установить, что ListView занимает то же самое пространство родительского элемента, для чего используется anchors.fill : parent.

contentItem: ListView {
    clip: true
    model: playFromHour.popup.visible ? playFromHour.delegateModel : null
    currentIndex: playFromHour.highlightedIndex
    anchors.fill: parent
}
...