12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import QtQuick 2.15
- import QtQuick.Controls 2.14
- import QtGraphicalEffects 1.14
- GroupBox {
- property var radiusVal: 6 // 圆角值
- property var borderWidth: 1 // 边框宽度
- property var borderColor: "#97C4F5" // 边框颜色
- property var titleColor: "#2359B7" // 标题颜色
- property var titleLeftBkColor: "#C9DDF8" // 标题最左侧背景色
- property var titleRightBkColor: "#F7FAFF" // 标题最右侧颜色
- property var titleTopPadding: 3 // 标题的顶部内边距
- property var contentBkColor: "#77F0F6FF" // 内容背景色
- property var titleFontPixel: 24
- id: control
- title: qsTr("GroupBox")
- background: Rectangle {
- anchors.fill: control
- radius: radiusVal
- border.color: borderColor
- clip: true
- Item {
- x: borderWidth
- y: borderWidth
- width: parent.width - borderWidth * 2
- height: control.topPadding - control.bottomPadding - borderWidth * 2 + titleTopPadding * 2
- clip: true
- Rectangle { // 设置标题的背景色
- anchors.fill: parent
- color: "#228833"
- LinearGradient {
- anchors.fill: parent
- source: parent
- start: Qt.point(0, 0)
- end: Qt.point(parent.width, 0)
- gradient: Gradient {
- GradientStop { position: 0.0; color: titleLeftBkColor }
- GradientStop { position: 1.0; color: titleRightBkColor }
- }
- }
- }
- }
- Rectangle { // 设置内容的背景色
- x: 1
- y: control.topPadding - control.bottomPadding - borderWidth * 2 + titleTopPadding * 2
- width: parent.width - borderWidth * 2
- height: parent.height - control.topPadding + control.bottomPadding - borderWidth * 2 - titleTopPadding * 2
- color: contentBkColor
- }
- }
- label: Label { // 设置title的属性
- y: titleTopPadding
- x: control.leftPadding
- width: control.availableWidth
- text: control.title
- color: titleColor
- elide: Text.ElideRight
- font.pixelSize: titleFontPixel
- }
- }
|