12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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
- }
- }
- }
|