import QtQuick 2.12 import QtQuick.Controls 2.12 ComboBox { id: control property var bgColor font.bold: true font.pixelSize: 20 delegate: ItemDelegate { width: control.width height: control.height contentItem: Text { text: modelData color: "black" font: control.font elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } highlighted: control.highlightedIndex === index } indicator: Canvas { id: canvas x: control.width - width - control.rightPadding y: control.topPadding + (control.availableHeight - height) / 2 width: 12 height: 8 contextType: "2d" Connections { target: control function onPressedChanged() { canvas.requestPaint(); } } onPaint: { context.reset(); context.moveTo(0, 0); context.lineTo(width, 0); context.lineTo(width / 2, height); context.closePath(); //context.fillStyle = control.pressed ? "red" : "green"; context.fillStyle ="gray" context.fill(); } } contentItem: Text { leftPadding: 5 rightPadding: control.indicator.width + control.spacing text: control.displayText font: control.font color: "black" //color: control.pressed ? "#17a81a" : "#21be2b" verticalAlignment: Text.AlignVCenter elide: Text.ElideRight } background: Rectangle { implicitWidth: control.width-2 implicitHeight: control.height-2 color: bgColor //border.color: control.pressed ? "#17a81a" : "#21be2b" //border.width: control.visualFocus ? 2 : 0 radius: 3 } popup: Popup { y: control.height - 1 width: control.width implicitHeight: contentItem.implicitHeight padding: 1 contentItem: ListView { clip: true implicitHeight: contentHeight+3 model: control.popup.visible ? control.delegateModel : null currentIndex: control.highlightedIndex ScrollIndicator.vertical: ScrollIndicator { } } background: Rectangle { border.color: "gray"//"#21be2b" radius: 2 opacity:1.0 } } }